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

Cur*_*bda 5 python django sudo pip virtualenv

我已经阅读了在全局站点包而不是 virtualenv 中安装 pip 并确保一切正确,我什至在 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
Run Code Online (Sandbox Code Playgroud)

据我所知,这意味着它安装在 virtualenv 之外。

不太确定该怎么做。已经阅读了一些博客,很多人对这个问题都有不同的看法,但我似乎无法为自己找到解决方案。

我正在使用 Ubuntu 14、Python 2.7 并在我的主目录中工作。

任何帮助都会很棒。

谢谢你。

Duš*_*ďar 2

您不应该virtualenv使用sudo.

对我来说这看起来像是文件权限问题。或者pip是使用 root 权限安装的,这就是当您尝试在 内部安装新软件包时需要的virtualnev原因。sudovirtualenv

检查您正在使用的可执行文件的文件权限(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
Run Code Online (Sandbox Code Playgroud)