繁体   English   中英

pip on virtualenv并没有在正确的python环境中安装软件包

[英]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 ,我喜欢在一个屏幕上同时打开多个控制台。

  1. 使用F2我打开新的完整窗口
  2. 我激活了virtualenv,我想继续努力
  3. 出于某种原因,我拆分屏幕并在新的拆分中工作

如果我忘记在新的分裂中激活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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM