virtualenv上的pip没有在正确的python环境中安装包

2024-10-02 22:35:51 发布

您现在位置:Python中文网/ 问答频道 /正文

在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并尝试在python上导入它时,使用virtualenv python

^{pr2}$

所以我想,哦,也许它找错了python,所以我做了一个whichpython和whichpip

(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

但是,如果我停用并尝试导入这些包,它将成功导入。不完全确定我做错了什么。在


Tags: installpipdevsourcewhichbinvirtualenvvar
3条回答

如果其他一切都失败了,或者出于某种原因想继续使用sudo,只需直接指定pip可执行文件的路径:

sudo ./my/virtualenv/bin/pip install foobar

经过一番修补后找到了解决办法。似乎sudo pip install {package}更改了安装路径。由于virtualenv位于var文件夹中,所以我需要root权限来安装东西(我意识到这是一个糟糕的做法)。相反,我选择做的是su root,然后在激活virtualenv的情况下pip install。在

这个错误发生在我身上,当我从另一个控制台通过pip安装时,我以为我仍然处于激活的virtualenv中,但实际上我在停用的系统Python中。在

使用byobu,我喜欢在一个屏幕上同时打开多个控制台。在

  1. 使用F2打开新的完整窗口
  2. 我激活了虚拟机,我想继续工作
  3. 出于某种原因,我把屏幕分开,在新的屏幕上工作

如果我忘了在新的拆分中激活virtualenv,我就会遇到你描述的同样的问题。在

相关问题 更多 >