Ubuntu系统Python3.7虚拟环境无法安装包问题求助
问题原因及解决方案
核心原因
- 使用
sudo pip执行安装时,会切换到root用户身份,此时系统会忽略当前激活的虚拟环境,调用全局系统的Python 3.8对应的pip,所以会提示包已存在于系统Python 3.8的目录中,但虚拟环境内并未安装。 - 另外,创建虚拟环境时使用
sudo,会导致venv目录的权限归root所有,普通用户后续操作虚拟环境可能出现权限问题,进一步加剧包安装的异常。
解决步骤
- 修复虚拟环境目录的权限,将其归属改为当前用户:
sudo chown -R $USER:$USER venv - 重新激活虚拟环境,确保终端提示符前出现
(venv)标识:source venv/bin/activate - 无需使用
sudo,直接执行安装命令,此时会调用虚拟环境内的pip:pip install -r requirements.txt
后续注意事项
- 以后创建虚拟环境时不要使用
sudo,直接执行virtualenv -p /usr/bin/python3.7 venv即可,避免权限混乱。 - 激活虚拟环境后,所有Python和pip操作都不需要加
sudo,虚拟环境是隔离的用户级环境,无需root权限。
内容的提问来源于stack exchange,提问作者user369287
相关产品推荐
相关产品推荐

