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

0 投票
3 回答
2146 浏览
提问于 2025-04-16 12:56

根据README里的说明和这个链接 http://code.google.com/p/pymssql/wiki/Compilation,我已经安装了Cython(版本0.14.1)、FreeTDS(版本0.82,使用MacPorts),而且我已经安装了XCode和gcc。

在运行 python setup.py install 的时候,我遇到了构建错误:出现了很多 undeclared name not builtin: 的错误,像 strlenPyMem_MallocPyMem_FreePY_LONG_LONG 这些,还有一些 ___ is deprecated, use 'cpython' 的提示。

我在谷歌上找到了一条讨论串 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 文件使用了过时的导入,我该怎么修复它们?

3 个回答

0

这个分支编译得非常顺利:

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

1

我用pip安装了Cython,具体是这样做的:

pip install Cython

然后我去了www.freetds.org,找到了下载最新源代码的cvs命令(在用户指南里找到“要构建的内容:软件包、压缩包和CVS库”)。要构建这个,别看网站上的说明,直接查看你刚下载的文件夹里的INSTALL.CVS文件。运行./autogen.sh的时候,使用:

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

autogen.sh会创建一个配置脚本,然后这个配置脚本会进行一些设置。你需要用7.0版本的Python来和TDS以及MS SQL一起工作。在运行完autogen.sh后,你需要执行'make',然后再执行'sudo make install'。

现在你需要pymssql的压缩包。解压它,然后运行:

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

这样就可以了。

1

你有没有试过从主干版本构建1.9.909?对我来说,这个版本构建得很顺利,而0.908版本就不行。

可惜的是,即使成功构建并安装了,我还是遇到了导入错误:在OS X上构建pymssql

撰写回答