默认python没有找到其他蟒蛇可以使用的相同模块。有什么建议?

时间:2012-02-13 19:05:41

标签: python macos

不确定如何解释它并且似乎无法弄清楚为什么会发生这种情况但是我试图从macports安装'MySQLdb'。

当我输入'python'和import MySQLdb时,它会失败,但是当我从/opt/local/bin/python2.7启动python并执行相同操作时它会完美运行。我以为我会聪明,看看默认python指向的位置,然后指向这个,但那就是它开始变得奇怪。

$ which python
/opt/local/bin/python

$ ls -l /opt/local/bin/python
lrwxr-xr-x  1 root  admin  24 Feb 13 13:55 /opt/local/bin/python -> /opt/local/bin/python2.7

我不明白,它似乎指向那个有效的那个,但是当我用完整路径打开python时,我无法加载相同的模块。

我确定我做的事情是愚蠢的,所以任何帮助来解释为什么会发生这种情况会很棒。

Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "MySQLdb/__init__.py", line 19, in <module>
    import _mysql
ImportError: No module named _mysql

1 个答案:

答案 0 :(得分:1)

您展示的Python版本横幅来自另一个Python,即从python.org下载的python.org 2.7.2 64位/ 32位安装程序。它不是MacPorts Python。它应该在/usr/local/bin/python2.7处有一个符号链接。显然,您正在使用的终端会话中的PATH环境变量不是您认为的,或者您可能已定义了shell别名。尝试:

echo $PATH

您需要确保MacPorts Python目录(/opt/local/bin)位于python.org Python(/Library/Frameworks/Python.frameworks/Version/2.7/bin/usr/local/bin)之前。

更新:同时检查MacPorts port select命令的当前值。它可能指向非MacPorts Python。

$ sudo port select --list python
Available versions for python:
    none
    python25-apple
    python26-apple
    python27 (active)
    python27-apple
    python32