让我先说,我已经读过pip installing in global site-packages instead of virtualenv,它并没有解决我的问题。在
当使用python -m venv venv
(或任何其他名称)创建虚拟环境,然后使用source venv/bin/activate
激活所述venv时,运行pip install [package]
实际上会将包安装到位于~/.local/lib/python3.7/site-packages/
中的(用户)全局python站点包中。在
有趣的是,它总是尝试安装这些包,但并不识别它们是全局安装的,这意味着它最初在正确的位置查找包。在
我正在运行ManjaroLinux,并运行最新的更新。在
我在~/Stuff/tests/venv
中创建了这个虚拟环境。
运行which pip
和which python
返回:
(venv) angelin@asgard:~/Stuff/tests/venv $ which pip
/home/angelin/Stuff/tests/venv/bin/pip
(venv) angelin@asgard:~/Stuff/tests/venv $ which python
/home/angelin/Stuff/tests/venv/bin/python
检查所述pip可执行文件显示正确的shebang:
^{pr2}$在virtualenv中,我的路径也首先指向虚拟环境:
(venv) angelin@asgard:~/Stuff/tests/venv $ echo $PATH
/home/angelin/Stuff/tests/venv/bin:/home/angelin/.local/bin:...
手动运行python -m pip
或venv/bin/python venv/bin/pip
会产生相同的结果。
未设置PYTHONPATH
变量。
我曾经尝试过使用pacman -S python python-pip
重新安装python和pip,但我相信只会重新安装全局包(位于/usr/bin
),我不想搞乱.local
安装,以防我破坏了更多的东西。在
如有任何建议,我们将不胜感激。在
我有一个临时的解决办法。在
/etc/pip.conf
包含:没有本地pip配置文件,这导致它总是传递
user
选项。我不知道如何正确配置我的本地文件,但是我创建了它并设置了user = false
,并将在venvs之外手动传递user
选项。在这感觉不是一个合适的修复,因为它在2天前正常工作,而且全局文件已经一个多月没有被更改过。也许是一个更新打破了什么,谁知道。如果其他人有更好的解决方案,请随意分享。在
相关问题 更多 >
编程相关推荐