Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
默认python找不到其他python可以找到的相同模块。有什么建议吗?_Python_Macos - Fatal编程技术网

默认python找不到其他python可以找到的相同模块。有什么建议吗?

默认python找不到其他python可以找到的相同模块。有什么建议吗?,python,macos,Python,Macos,不知道如何解释,也不知道为什么会发生这种情况,但我尝试从macports安装“MySQLdb” 当我键入“python”并导入MySQLdb时,它会失败,但当我从/opt/local/bin/python2.7启动python并执行相同操作时,它会完美工作。我想我会很聪明,看看默认的python指向哪里,然后指向这个,但那是它开始变得奇怪的时候 $ which python /opt/local/bin/python $ ls -l /opt/local/bin/python lrwxr-xr

不知道如何解释,也不知道为什么会发生这种情况,但我尝试从macports安装“MySQLdb”

当我键入“python”并导入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
Python2.7.2(v2.7.2:852742714a2,2011年6月11日,15:22:34)
[GCC 4.2.1(苹果公司建造5666)(dot 3)]关于达尔文
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入MySQLdb
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“MySQLdb/\uuuuu init\uuuuuu.py”,第19行,在
导入mysql
ImportError:没有名为_mysql的模块

您显示的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

这是自制的还是macports?你能发布回溯吗?在大多数情况下,这给了我们一些出发点…我只是在问题失败时用错误消息更新了答案(当它工作时,它就工作了)为什么这个问题用
linux
标记?我找不到任何与Linux相关的东西。强烈建议从您的系统中删除所有macports跟踪,安装并遵循感谢,这太奇怪了,我做了一个echo$PATH,它的顺序似乎已经正确了:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin您使用过MacPorts
port select
命令吗?请参阅更新。当我执行上面的端口选择命令时,我会得到与您完全相同的列表(除了我没有python32),同样的python27对我也是活动的。如果它们都是apple,并且网站上的python是活动的,这是否意味着没有显示macports版本?未标记的python27选项应该是指macports版本,而不是python.org版本。