在 Mac OS 10.6 (python 2.6) 上安装/构建 pymssql

Posted

技术标签:

【中文标题】在 Mac OS 10.6 (python 2.6) 上安装/构建 pymssql【英文标题】:installing/building pymssql on Mac OS 10.6 (python 2.6) 【发布时间】:2011-03-03 16:39:18 【问题描述】:

按照自述文件和此处http://code.google.com/p/pymssql/wiki/Compilation 中的说明,我已经安装了 Cython (v0.14.1)、FreeTDS(使用 MacPorts 的 v0.82),并且我已经使用 gcc 安装了 XCode。

我在python setup.py install 期间遇到了构建错误: 很多undeclared name not builtin:strlenPyMem_MallocPyMem_FreePY_LONG_LONG 以及一些___ is deprecated, use 'cpython' 之类的东西

Google 找到了我这个帖子 http://groups.google.com/group/cython-users/browse_thread/thread/468bb80480ede699/dc8267a4274c2413,其中有人解决了第一个错误(从 from stdlib cimport strlen, strcpy 更改为 from libc.string cimport strlen, strcpy。)

现在我得到:_mssql.pyx:650:34: Cannot convert Python object to 'const_char *'

这是这些问题来自http://code.google.com/p/pymssql/source/browse/tags/1.9.908/_mssql.pyx的文件

我的问题:

如果我没有为pymssql 正确准备我的系统,我做错了什么?

如果_mssql.pyx 文件正在使用已弃用的导入,我该如何修复它们?

【问题讨论】:

第 650 行是 dbValue[0] = intValue 经检查定义,这里没有 Python object 或 const char。你能确认你在 650 处也有那条线吗? 糟糕,我已链接到文件的主干版本,我正在从标签 1.9.908 构建。我已经更新了链接。 【参考方案1】:

您是否尝试过从主干构建 1.9.909?它为我构建得很干净,而 .908 没有。

很遗憾,即使构建和安装成功,我也会遇到导入错误:Building pymssql on OS X

【讨论】:

【参考方案2】:

我已经安装了 pip,所以我使用以下方法获得了 Cython:

pip install Cython

我去了 www.freetds.org 并获得了 cvs 命令来下载最新的源代码(用户指南然后是“构建内容:包、Tarballs 和 CVS 存储库”)。要构建它,请忽略网站上的说明并查看刚刚下载的存储库根目录中的文件 INSTALL.CVS。当你运行 ./autogen.sh 时使用:

./autogen.sh --with-tdsver=7.0

autogen.sh 将创建一个配置脚本,然后配置脚本将获取开关。您需要使用 7.0 for python 才能使用 TDS 和 MS SQL。在 autogen.sh 之后执行“make”,然后执行“sudo make install”。

现在您需要 pymssql 压缩包。解压并运行:

python setup.py config
python setup.py build
sudo python setup.py install

应该这样做。

【讨论】:

【参考方案3】:

这个 fork 编译起来就像一个魅力:

https://github.com/blackbass1988/pymssql-macos-lion

【讨论】:

以上是关于在 Mac OS 10.6 (python 2.6) 上安装/构建 pymssql的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac OS X 10.6 上使用带有 Python 2.7 的 Google App Engine SDK

在Mac OS X 10.6上的Python中,无法在Matplotlib中将字体更改为Helvetica

在 Mac OS 10.6 上安装 psycopg2 时出错

如何在 Mac OS X 10.6 中发出硬件哔声

在 10.6 (Snow Leopard) 之后以编程方式设置 Mac OS X 音量

Qt 5.4 - Mac OS X 10.6 支持