python正在virtualen中获取全局模块而不是本地模块

2024-04-19 08:48:13 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我第一次使用virtualenv和MySQLdb,我遇到了一个奇怪的错误。在我设置了这个virtualenv之后,我在virtualenv中安装了MySQLdb(实际上激活了ENV)。MySQLdb不是全局安装的。打开python文件夹时,请尝试打开以下模块:

import MySQLdb Traceback (most recent call last): File "", line 1, in ImportError: No module named MySQLdb

但是,当我从site packages文件夹执行相同的操作时

…环境/lib/python2.7/site-packages

import MySQLdb

一切似乎都很好。在

还有,当我跑步的时候

help ('modules')

从这两个目录中,我得到的列表略有不同(即使它告诉我我使用的是同一个python可执行文件)。这就像是因为某种原因,同一个python可执行文件从不同的地方获取它的模块,而它获得模块的唯一时间是在ENV内部,在本例中是site packages文件夹。如果我不在site packages文件夹中,它似乎得到了一个不同的列表,我无法访问MySQLdb。在

我用的是macosx小牛,据我所知XCode是最新的(我发现我很少使用它)。在

我用这个来设置virtualenv

virtualenv -p /usr/local/Cellar/python/2.7.8/bin/python ENV

which python在ENV和site包中都提供了这一点

...ENV/bin/python

版本

virtualenv 1.11.6版 python2.7.8(不是默认的python)

更新:

已安装sqlalchemy

^{pr2}$

我也得到了同样的感觉。似乎即使它在ENV中使用了正确的python,但只有当它直接位于site packages文件夹中时,python版本才能获得正确的模块列表。否则,它看起来像是从全球名单上拉出来的


Tags: 模块import版本env文件夹可执行文件列表bin
1条回答
网友
1楼 · 发布于 2024-04-19 08:48:13

发现了问题。在ENV/bin/pip里面有一行写着

#!/Users/timbauer/Desktop/ENV/bin/python2.7

我要说的是

^{pr2}$

关闭上述功能并重新启动终端似乎解决了所有问题。我不得不删除virtualenv并重新安装所有的东西来让它正常工作,但我才刚刚开始,所以这并不是什么大问题。在

相关问题 更多 >