venv是python 3.3+内置模块,报“no module named venv”主因是ubuntu/debian未安装python3-venv包,需sudo apt install python3-venv;centos用yum install python3-virtualenv;验证命令为python3 -m venv --help。

venv 是 Python 3.3+ 自带的模块,不用装、够轻、直接用——只要系统有 Python 3.3 以上,就能立刻建隔离环境,避免项目间依赖打架。
创建 venv 时为什么提示 “No module named venv”?
这是 Ubuntu/Debian 类发行版常见问题:系统默认不自带 venv 模块,哪怕 python3 --version 显示是 3.8 或更高,也得手动装依赖包。
- 执行
sudo apt update && sudo apt install -y python3-venv - CentOS/RHEL 系要用
sudo yum install -y python3-virtualenv(注意包名不同) - 装完验证:
python3 -m venv --help不报错即成功
别试图用 pip install venv——它不存在,venv 是内置模块,不是 PyPI 包。
如何让 venv 使用指定 Python 版本?
venv 默认用调用它的那个 python3 可执行文件版本。如果系统装了多个 Python(比如 python3.9 和 python3.11),就得显式指定解释器路径。
- 用
python3.9 -m venv myenv39创建基于 3.9 的环境 - 用
/opt/python3.12/bin/python -m venv myenv312(路径要真实存在) - 别写成
python3 -m venv --python=3.9 myenv——venv不支持--python参数,那是virtualenv的语法
创建后运行 myenv39/bin/python --version 确认版本,别只信目录名。
python-docx Skill功能概述python-docx Skill是一项面向实际任务的技能,主要用于本Skill提供使用python-docx生成专业Word文档的标准方法和最佳实践;生成安全服务方案文档;核心要点生成技术架构设计文档;生成任何需要专业排版的Word文档;核心库 : python-docx;使用与执行辅助库 : docx.shared , docx.enum , docx.oxml.ns;标准代码模板;1. 文档初始化;2. 字体设置(必须!它将相关步骤、工具调用和结果整理方式集
激活后 pip 安装的包为什么没进 site-packages?
常见原因是没真正激活,或激活脚本执行失败但没报错。最典型的是:source venv/bin/activate 执行后,终端提示符没变,which python 还指向系统路径。
- 检查是否漏掉
source(不是sh venv/bin/activate,后者不修改当前 shell 环境) - 确认
venv/bin/activate文件权限可读(ls -l venv/bin/activate) - 运行
echo $PATH,看开头是否有venv/bin;没有就说明没生效 - 若用 zsh/bash 配置了
cd自动激活,可能被干扰,建议手动source一次再试
一旦激活成功,pip install requests 装的包只会出现在 venv/lib/python3.x/site-packages/ 下,不影响系统全局。
要不要加 --system-site-packages?
这个参数会让新环境“看到”系统已装的包(如 numpy、scipy),省下载时间,但代价是失去彻底隔离——系统里某个包升级或卸载,可能悄悄影响你的项目。
- CI/CD 或部署环境强烈不建议加,必须干净可控
- 本地快速原型开发、GPU 机器预装了 CUDA 相关包时可临时启用
- 加了之后,
pip list会显示两套包来源(Location列能看出是venv/lib还是/usr/lib)
记住:隔离不是为了“看起来干净”,而是为了“行为确定”。生产环境里,少一个不确定因素,就少一个半夜被 call 的理由。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










