使用Python3 venv创建空虚拟环境失败的技术问题求助
解决Python虚拟环境包含系统包的问题
问题现象
执行python3 -m venv venvs/mon-env创建虚拟环境时出现异常:
- 生成的虚拟环境包列表过长,包含大量系统级第三方包
- 已在配置中设置
include-system-site-packages = false,但仍能看到系统包
环境补充信息
- 系统安装多版本Python:Python 2.7、Python 3.7、Python 3.9
- 版本命令输出:
python --version→ Python 2.7.16python3 --version→ Python 3.7.3
- 路径映射:
python→/usr/bin/pythonpython3→/usr/bin/python3
排查与解决步骤
1. 指定明确Python版本创建虚拟环境
你的系统存在Python3.9,但当前python3指向3.7.3。直接用目标版本的Python可避免版本混淆:
/usr/bin/python3.9 -m venv --clear venvs/mon-env
创建完成后激活环境,执行pip list,正常情况下只会显示pip、setuptools、wheel这类基础工具包。
2. 验证虚拟环境配置文件
打开虚拟环境目录下的venvs/mon-env/pyvenv.cfg,确认配置项:
include-system-site-packages = false
若该值被篡改,手动修正后保存,重新激活环境即可。
3. 检查pip路径是否被污染
激活虚拟环境后执行which pip,确认输出为虚拟环境内的路径(如venvs/mon-env/bin/pip)。如果指向系统级pip,执行以下命令重置shell路径缓存:
source venvs/mon-env/bin/activate hash -r
再次执行pip list验证包列表。
4. 清理旧环境重新创建
若旧环境存在缓存残留,直接删除后重新生成:
rm -rf venvs/mon-env /usr/bin/python3.9 -m venv venvs/mon-env
内容的提问来源于stack exchange,提问作者Nixies
相关产品推荐
相关产品推荐

