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

时间:2015-09-21 15:55:29

标签: python django pip virtualenv sudo

我已阅读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并在我的主目录中工作。

任何帮助都会很棒。

谢谢。

3 个答案:

答案 0 :(得分:3)

您不应使用virtualenvsudo内安装软件包。

对我来说,它看起来像文件权限问题。使用root权限安装pipvirtualnev时,这是尝试在sudo内安装新软件包时需要virtualenv的原因。

检查您正在使用的可执行文件的文件权限(virtualenvpip)。

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

答案 1 :(得分:1)

您只需使用

即可
./bin/pip

在虚拟环境中安装任何内容。 (我无法评论这就是我必须在这里写的原因)。

答案 2 :(得分:0)

我今天遇到了同样的问题,事实证明我在PYTHONPATH文件中设置了.bash_profile变量,因此在激活我的虚拟环境export PYTHONPATH=后在我的shell中运行 为我做了诀窍。