当前位置: 首页 > 知识库问答 >
问题:

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

孔弘盛
2023-03-14

我已经阅读了pip安装在全球站点包,而不是虚拟环境,并确保一切是正确的,我甚至重新安装pip与easy_installvirtaulenv。

发生的事情很奇怪。首先,它不会让我安装一个没有sudo的包...如果我读取文本输出,它会尝试将其放置在虚拟环境路径中。然后我使用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之外。

我真的不知道该怎么办。我读过一些博客,很多人对这个问题有不同的看法,但我似乎无法为自己找到解决办法

我正在使用Ubuntu14、Python2.7并在我的主目录中工作。

任何帮助都会很好。

非常感谢。

共有3个答案

葛越
2023-03-14

我今天也遇到了同样的问题,结果是我在中手动设置了PYTHONPATH变量。bash\u profile文件,所以在激活虚拟环境后在shell中运行export PYTHONPATH=对我起到了作用。

鲍建业
2023-03-14

你可以简单地用

./bin/pip

在虚拟环境中安装任何东西。(我无法发表评论,这就是我为什么要在这里写作的原因)。

章昱
2023-03-14

您不应该使用sudo安装包。

在我看来,这似乎是一个文件权限问题。pipvirtualnev是以root权限安装的,这就是当您尝试在virtualenv中安装新软件包时需要sudo的原因。

检查您正在使用的可执行文件的文件权限(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
 类似资料:
  • 使用在中安装软件包会导致软件包安装在全局站点软件包文件夹中,而不是安装在virtualenv文件夹中。下面是我如何在OS X Mavericks(10.9.1)上设置Python3和virtualenv的: 我使用自制软件安装了Python3: 更改了中的变量;添加了以下行: 运行python3返回(重启shell后)。 注意:仍然返回/usr/bin/python。 使用安装的: 接下来,创建一

  • 我有一个python项目,我在Windows上使用VS代码。我创建了一个虚拟环境。venv)。这一切似乎都很好。当我激活(< code >)时。\.venv \ Scripts \ activate . PS1 或< code >。\.venv \ Scripts \ activate . bat )我看到< code >(。venv)。我可以在激活的环境中运行< code>pip,也可以不运行。

  • 我试图安装flake8包使用pip3,它似乎拒绝安装,因为已经安装在一个本地位置。 如何强制全局安装(系统级)? 请注意,我更喜欢一个通用的解决方案(应该在Debian、OSX甚至Windows上工作),一个应该在任何平台上使用的解决方案,所以我不想自己指定目标。 出于某种奇怪的原因,它的行为就像我已经指定了,而在我的情况下,我没有指定。 我能够在全球范围内安装包的唯一方法是首先删除它,然后在此之

  • 我使用了来创建一个新的env,但是当我试图安装来安装较新版本的时,它是全局安装的,尽管我的环境被激活,这导致了的全局安装。。如何仅在虚拟环境中使用它

  • 我似乎不能正确使用sudo pip安装,以便它安装到以下目录: 这样我就可以使用python导入模块 我跑过了 结果 但是,它不在正确的目录中 如何让sudo pip安装到正确的目录? 另外,我也试过了 sudo-pip安装刮擦 我得到以下信息 这两个实例都表明它已经安装,但并不正确。例如,当我在python中运行以下导入: 我尝试了以下方法:

  • 在VScode中,我既不能安装linter也不能安装autopep8 formatter,我一直收到相同的错误消息,说没有针对该环境的pip 我有Python v. 3.8.5,并在VScode设置(/usr/local/bin/python3.8)中正确设置了路径。我选择Python v. 3.8.5作为我的解释器 问题可能是这样的: 我尝试过几次这样安装pip 当我检查pip -V时,它说 即