virtualenv使用了不正确的sys.path



刚才一切都很好。我不知道我做了什么来激怒virtualenv,但它现在的行为非常奇怪。感谢您的帮助。

在制作虚拟机时,我使用以下命令:

virtualenv -p /usr/bin/python3 venv

现在我看到我使用pip install package安装的软件包没有被python加载。它们由pip正确安装到venv/lib/python3.4/site-packages目录中,但是我的virtualenv中的python并没有在该目录中查找包。

在Python中:

import sys
sys.path
['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']

这是错误的!它使用了错误的路径,至少应该包括

/myhomedir/venv/lib/python3.4/site-packages

这样我就可以导入我的包了。

事实上,在Python中打开了一个virtualenv:

import sys
sys.path.append("/myhomedir/venv/lib/python3.4/site-packages")
import package

工作!!

但我不想每次使用Python时都必须手动附加此路径。我做了一些让sys.path非常生气的事情,我不知道那是什么。

我只是更新了sudo apt和升级了sudo apt,以确保这不是冲突。。。没有骰子。

可能相关:

我注意到我的virtualenv命令输出以下行:

Using base prefix '/usr'

我不记得以前发生过这种事。然而,即使在我执行virtualenv venv时(没有指定Python版本,也没有显示输出),我的sys.path仍然是错误的,并且无法加载包。

有什么想法吗?我们非常感谢您的帮助。

解决了问题。。。如果其他人有同样的问题,发布结果。最高程度的PICNIC错误。

在我的.bashrc文件中,我有一个别名python=/usr/bin/python3

当我的virtualenv试图执行python时,它正在重新路由到/usr/bin,而不是使用它的内部python。

最新更新