Tom*_*m A 10 python ubuntu virtualenv sys.path
刚才事情很好.我不知道我做了什么来惹恼virtualenv,但现在它的行为非常奇怪.任何帮助表示赞赏.
在制作virtualenv时,我使用以下命令:
virtualenv -p /usr/bin/python3 venv
Run Code Online (Sandbox Code Playgroud)
现在我看到我安装的软件包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']
Run Code Online (Sandbox Code Playgroud)
这是错的!它使用了错误的路径,至少应该包括
/myhomedir/venv/lib/python3.4/site-packages
Run Code Online (Sandbox Code Playgroud)
所以我可以导入我的包.
事实上,在Python中打开了一个virtualenv:
import sys
sys.path.append("/myhomedir/venv/lib/python3.4/site-packages")
import package
Run Code Online (Sandbox Code Playgroud)
作品!!
但我不希望每次使用Python时都手动附加此路径.我做了一些让sys.path非常生气的事情,我不知道那是什么.
我只是sudo apt-get updated和sudo apt-get升级以确保它不是冲突......没有骰子.
可能相关:
我注意到我的virtualenv命令输出以下行:
Using base prefix '/usr'
Run Code Online (Sandbox Code Playgroud)
我不记得以前发生过这种情况.但即使我这样做virtualenv venv,(没有指定Python版本,并且没有出现输出)我的sys.path仍然是错误的,并且包不会加载.
任何想法?非常感谢帮助.
Tom*_*m A 17
解决了问题...如果其他人有同样的问题,发布结果.PICNIC最高程度的错误.
在我的.bashrc文件中,我有一个别名 python=/usr/bin/python3
好吧,当我的virtualenv试图执行python时,它重新路由到/ usr/bin而不是使用它的内部python.
| 归档时间: |
|
| 查看次数: |
3929 次 |
| 最近记录: |