通过MacPorts在Mac OS X上安装pyodbc

时间:2013-10-20 19:15:14

标签: python macos python-2.7 macports pyodbc

我目前的具体问题:MacPorts在哪里安装了pyodbc?总体问题是:如何使用 MacPorts在Mac OSX 上安装pyodbc?全文如下......

我正在使用从/Library/Frameworks/Python.framework/Versions/2.7/bin/python运行的Mac OS X Lion(10.8.5)和Python 2.7。我已经安装了FreeTDS(使用fisql编写了一个bash脚本),但我也按照http://www.cerebralmastication.com/2013/01/installing-debugging-odbc-on-mac-os-x/的说明进行操作,并确认已安装UnixODBC。最后,我已成功运行sudo port install py27-pyodbc ...但是当我尝试import pyodbc时,我收到错误:

ImportError: No module named pyodbc

果然,我listing my available modules时没有看到它。我是OSX的新手,但我检查了/usr/bin/usr/local/bin中的符号链接,它们都指向同一个地方。

P.S。 - 我仍然对后人的解决方案感兴趣,但我只是从setup.py build来源和瞧瞧来运行setup.py installpyodbc!工作。

2 个答案:

答案 0 :(得分:1)

以下是我所学到的内容:MacPorts在/opt/local/Library/Frameworks/Python.framework下创建了自己的Python安装,这与系统/Library/Frameworks/Python.framework容易混淆。它称之为后者" python27-apple" (假设版本为2.7)并且您可以通过运行sudo port select --list python来查看它看到的所有Pythons,并且可以通过运行sudo port select python python27-apple使其使用系统Python。现在,当你运行sudo port install py27-pyodbc时理论上它应该将库放入正确的文件夹(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pyodbc.so)......但它没有。但是,您可以复制/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pyodbc*中的两个文件,然后找到它们。

$ cp /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/* ./
$ python
Python 2.7.5 (v2.7.5:ab05e7dd2788, May 13 2013, 13:18:45) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyodbc
>>> quit()

请注意,此文件夹不需要提升权限,因为它适用于插入式第三方库。这真的不是最好的解决方案,我希望其他人可以告诉我并建议一个更好的解决方案。

参考:How to: Macports select python

答案 1 :(得分:0)

您可以添加PYTHONPATH的路径,以便python知道它也应该在该目录中查找。

export PYTHONPATH=$PYTHONPATH:/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

之后导入应该成功。