刚才事情很好。我不知道我做了什么来惹恼virtualenv,但现在它的行为非常奇怪。任何帮助表示赞赏。
制作virtualenv时,我使用此命令:
virtualenv -p /usr/bin/python3 venv
现在我看到我使用pip install package
安装的软件包没有被python加载。它们通过pip正确安装到venv / lib / python3.4 / site-packages目录中,但是我的virtualenv中的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-get updated和sudo apt-get升级以确保它不是冲突......没有骰子。
可能相关:
我注意到我的virtualenv命令输出以下行:
Using base prefix '/usr'
我不记得以前发生过这种情况。但是,即使我执行virtualenv venv
,(没有指定Python版本,并且没有出现输出),我的sys.path仍然是错误的,并且不会加载包。
有人想过吗?非常感谢帮助。
答案 0 :(得分:15)
解决了问题...如果其他人有同样的问题,发布结果。 PICNIC最高程度的错误。
在我的.bashrc文件中,我有一个别名python=/usr/bin/python3
当我的virtualenv尝试执行python时,它正在重新路由到/ usr / bin而不是使用它的内部python。