为啥 pip3 安装到 /usr/local/bin64 而不是我的虚拟环境,即使它已激活?

Posted

技术标签:

【中文标题】为啥 pip3 安装到 /usr/local/bin64 而不是我的虚拟环境,即使它已激活?【英文标题】:Why does pip3 install into /usr/local/bin64 instead of my virtual env, even though it's activated?为什么 pip3 安装到 /usr/local/bin64 而不是我的虚拟环境,即使它已激活? 【发布时间】:2022-01-11 04:49:36 【问题描述】:

我希望将项目的依赖项安装到虚拟环境中。我成功创建并激活它,但仍然安装依赖项导致它们安装在 /usr/local/bin64 而不是我的虚拟环境下:

[ec2-user@machine app]$ virtualenv environment
created virtual environment CPython3.7.10.final.0-64 in 392ms
  creator CPython3Posix(dest=/home/ec2-user/app/environment, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/ec2-user/.local/share/vi
rtualenv)
    added seed packages: pip==21.0.1, setuptools==54.1.2, wheel==0.36.2
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
[ec2-user@machine app]$ source environment/bin/activate
(environment) [ec2-user@machine app]$ pip3 install -r requirements.txt
Collecting anyio==3.4.0
  Using cached anyio-3.4.0-py3-none-any.whl (78 kB)
Collecting appdirs==1.4.4
  Using cached appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Collecting atomicwrites==1.4.0
  Using cached atomicwrites-1.4.0-py2.py3-none-any.whl (6.8 kB)
Collecting attrs==20.3.0
  Using cached attrs-20.3.0-py2.py3-none-any.whl (49 kB)
Collecting boto3==1.20.14
...

我发现包裹在这里结束:/usr/local/lib64/python3.7/site-packages

但我希望它们安装在 ~/app/environment 中,我的虚拟环境是在其中创建和激活的。

我检查了 pip 和 pip3 的位置,似乎是正确的:

(environment) [ec2-user@machine app]$ which pip
~/app/environment/bin/pip
(environment) [ec2-user@machine app]$ which pip3
~/app/environment/bin/pip3

我错过了什么?

【问题讨论】:

【参考方案1】:

您正在调用另一个环境中的pip3。试试pip。您可以使用which pip 进行验证。

【讨论】:

我检查过,但两者似乎都在正确的位置。请参阅上面答案的更新。我只用 pip 重新运行了安装,但结果相同。我的依赖项之一是 newrelic,当我搜索机器时,我只能在 /usr/local/lib64/python3.7/site-packages/newrelic 的全局站点包文件夹中找到它。还有什么其他想法可能导致这种情况吗? 嗯,试试python -m pip install ..

以上是关于为啥 pip3 安装到 /usr/local/bin64 而不是我的虚拟环境,即使它已激活?的主要内容,如果未能解决你的问题,请参考以下文章

linux中如何查看文件安装在哪个目录

为啥 pip3 在 Ubuntu 20.04 上安装/更新软件包后要创建一个 kdewallet?

变量的学习

phpunit 测试框架安装

Linux源码编译安装和卸载

docker-credential-desktop 未安装或在 PATH 中不可用