You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu20.04下venv虚拟环境pip list无法显示环境内包求助

解决Ubuntu 20.04中Python venv显示全局包的问题

可能的原因

ROS Noetic会修改PYTHONPATH环境变量,将系统级ROS包路径加入其中,导致虚拟环境的Python解释器优先加载全局包;另外可能是创建虚拟环境时未明确指定正确的Python版本,或者终端中残留了ROS的环境配置。

解决步骤

1. 检查虚拟环境的Python/Pip路径是否正确

激活虚拟环境后,执行以下命令确认路径:

which python
which pip

输出应指向dummyname/bin/python和dummyname/bin/pip。如果不是,说明虚拟环境激活未生效,或python命令被别名/系统环境覆盖。此时可以直接使用绝对路径运行虚拟环境的Python:

/path/to/dummyname/bin/python -m pip list

2. 清除ROS的PYTHONPATH影响

激活虚拟环境后,重置PYTHONPATH,让虚拟环境仅使用自身的包路径:

export PYTHONPATH=""

之后再执行pip list,就能看到虚拟环境内的独立包列表(仅pip、setuptools等默认包)。

如果希望每次激活虚拟环境时自动重置PYTHONPATH,可以修改虚拟环境的激活脚本:

  • 打开dummyname/bin/activate文件
  • 在文件末尾添加一行:export PYTHONPATH=""

3. 在无ROS环境的终端中创建虚拟环境

如果上述方法无效,尝试新开一个未加载ROS环境的终端:

  • 注释掉~/.bashrc中类似source /opt/ros/noetic/setup.bash的行
  • 重启终端,然后重新创建虚拟环境:
python3 -m venv dummyname
source dummyname/bin/activate
pip list

创建完成后,再恢复~/.bashrc中的ROS配置即可。

4. 重新初始化虚拟环境的pip

如果虚拟环境的pip被全局pip污染,可重新安装pip:
激活虚拟环境后执行:

curl https://bootstrap.pypa.io/get-pip.py | python

之后再运行pip list即可正常显示虚拟环境内的包。

内容的提问来源于stack exchange,提问作者codeFighter2022

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 12:20:50