为啥 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 而不是我的虚拟环境,即使它已激活?的主要内容,如果未能解决你的问题,请参考以下文章