[英]pip on virtualenv is not installing packages in the right python environment
在virtualenv上执行source activate之后,我执行以下操作:pip install requests我得到了:
sudo pip install requests
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/local/lib/python2.7/dist-packages
Cleaning up...
现在当我运行python并尝试在使用virtualenv python时在python上导入它
>>> import requests
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named requests
>>>
所以我想,哦,也许它正在看错了python,所以我做了一个python和哪个pip
(dev)sshum@mysite:~/dev/bin$ which python
/var/www/mysite/mysite/dev/bin/python
(dev)sshum@mysite:~/dev/bin$ which pip
/var/www/mysite/mysite/dev/bin/pip
但是,如果我停用并尝试导入这些包,则会成功导入。 不完全确定我做错了什么。
这个错误发生在我身上,当我从另一个控制台通过pip安装时,认为我仍处于激活的virtualenv中,但实际上我处于停用的系统Python中。
使用byobu
,我喜欢在一个屏幕上同时打开多个控制台。
如果我忘记在新的分裂中激活virtualenv,我遇到了你描述的同样的问题。
经过一些修补后找到了解决方案。 好像sudo pip install {package}
更改了安装路径。 由于virtualenv位于var文件夹中,我需要root权限来安装东西(这是我意识到的不好的做法)。 相反,我选择做的是su root
,然后使用virtualenv激活pip install
。
如果其他一切都失败了或者你想因某种原因继续使用sudo,只需直接指定pip
可执行文件的路径:
sudo ./my/virtualenv/bin/pip install foobar
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.