python-Pip全局安装,而不是在虚拟环境中安装-即使所有路径和pip都指向正确的位置

我已经阅读了pip installing in global site-packages instead of virtualenv,并确保一切正确,甚至在virtaulenv中使用easy_install重新安装了pip.

发生的事情很奇怪.首先,它不会让我安装没有sudo的软件包…如果我阅读了文本输出,它将尝试按预期方式将其放置在virtualenv路径中.然后,我使用sudo并成功了.

但是,如果我尝试安装软件包(在本例中为django-bootstrap3),则会显示:

(env)kevin@g3:~/djangoP/work$sudo pip install django-bootstrap3
Requirement already satisfied (use --upgrade to upgrade): django-bootstrap3 in /usr/local/lib/python3.4/dist-packages

据我了解,这意味着它安装在virtualenv之外.

不太确定该怎么办.阅读了一些博客,很多人对此问题有所了解,但我似乎找不到适合自己的解决方案.

我正在使用Ubuntu 14,Python 2.7并在主目录中工作.

任何帮助都会很棒.

谢谢.

解决方法:

您不应使用sudo在virtualenv内安装软件包.

对我来说,它似乎是文件许可问题. pip或virtualnev都安装了root特权ant,这就是当您尝试在virtualenv中安装新软件包时需要sudo的原因.

检查文件权限以获取您正在使用的可执行文件(virtualenv,pip).

dm@Z580:~$which virtualenv
/usr/local/bin/virtualenv
dm@Z580:~$ls -l /usr/local/bin/virtualenv
-rwxr-xr-x 1 root root 214 aug 18 21:20 /usr/local/bin/virtualenv

dm@Z580:~$which pip
/usr/local/bin/pip
dm@Z580:~$ls -l /usr/local/bin/pip
-rwxr-xr-x 1 root root 207 jun  3 15:33 /usr/local/bin/pip


dm@Z580:~$virtualenv -p python2.7 testenv 
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in testenv/bin/python2.7
Also creating executable in testenv/bin/python
Installing setuptools, pip, wheel...done.
dm@Z580:~$source testenv/bin/activate

(testenv)dm@Z580:~$which pip
/home/dm/testenv/bin/pip
(testenv)dm@Z580:~$ls -l /home/dm/testenv/bin/pip
-rwxrwxr-x 1 dm dm 219 sep 21 17:29 /home/dm/testenv/bin/pip
上一篇:我可以在同一台计算机上具有相同名称的多个虚拟环境吗?


下一篇:Django如何与virtualenv一起使用?