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

问题描述 投票:0回答:4

我已经阅读了在全局站点包中安装pip而不是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 并在我的主目录中工作。

任何帮助都会很棒。

谢谢你。

python django pip virtualenv sudo
4个回答
2
投票

您可以简单地使用

./bin/pip

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


2
投票

您不应该使用

virtualenv
sudo
中安装软件包。

对我来说这看起来像是文件权限问题。

pip
virtualnev
是使用 root 权限安装的,这就是当您尝试在
sudo
中安装新软件包时需要
virtualenv
的原因。

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

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

1
投票

我今天也遇到了同样的问题,结果发现我在

PYTHONPATH
文件中手动设置了
.bash_profile
变量,因此在激活虚拟环境后在我的 shell 中运行
export PYTHONPATH=
为我成功了。


0
投票

我在 venv 中的 pip 也遇到了类似的问题 pip 在全局站点包中安装了 Pyinstaller 而不是 venv

更奇怪的是,要解决这个问题,我必须执行以下步骤:

更新执行政策。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUs

更改以下目录中“pip.ini”的内容:“C:\Users\user_name\AppData\Roaming\pip\pip.ini”。

[global]
trusted-host = pypi.org files.pythonhosted.org pypi.python.org
default-timeout = 60
respect-virtualenv = true
download-cache = /tmp
log-file = /tmp/pip-log.txt

最后创建 .venv,激活它,然后 pip install -rrequirements.txt 对我有用。

python -m venv .venv
.venv\Scripts\activate.ps1
pip install -r requirements.txt
© www.soinside.com 2019 - 2024. All rights reserved.