一、什么是venv虚拟环境
python 3.3+ 内置venv模块,无需额外安装,是官方推荐轻量级虚拟环境工具。
核心作用
- 依赖隔离:不同项目可使用不同版本python、第三方库,彻底解决包版本冲突;
- 不污染全局python:所有安装的包仅存于当前环境,不会影响系统全局;
- 环境可复现:通过
requirements.txt记录依赖,一键部署、团队协作; - 安全测试:随便安装、升级、卸载测试包,不破坏其他项目环境。

主流虚拟环境工具对比
| 工具 | 类型 | 优势 | 适用场景 |
|---|---|---|---|
| venv | python内置 | 零安装、轻量、官方标准 | 普通python项目、日常开发 |
| virtualenv | 第三方 | 兼容python2、功能拓展 | 老旧python版本项目 |
| conda | anaconda配套 | 支持python/c++库、多语言 | 数据分析、ai深度学习 |
二、虚拟环境目录结构
执行创建命令后,项目目录生成独立文件夹,所有解释器、pip、依赖全部封闭在此目录内:
env/ ├── scripts/ # windows系统 │ ├── activate.bat # cmd激活脚本 │ ├── activate.ps1 # powershell激活脚本 │ ├── python.exe # 环境独立解释器 │ └── pip.exe # 环境独立包管理器 ├── bin/ # macos / linux系统 │ ├── activate │ ├── python │ └── pip └── lib/site-packages/ # 存放所有安装的第三方库
关键:整个文件夹就是完整虚拟环境,删除文件夹=彻底删除环境。
三、完整操作流程(跨平台)
1. 前置:查看本地python版本
# windows python --version py --version # 如果存在多个python版本 py -0p # 输出所有的python版本以及对应路径 # macos/linux python3 --version
2. 创建虚拟环境
基础创建(推荐命名env/.venv)
# windows cmd/powershell python -m venv env # macos/linux python3 -m venv env
env:虚拟环境文件夹名,行业常用.venv、venv、test_env;- 多python版本共存时,指定解释器创建:
# 使用指定的python版本创建虚拟环境 py -3.11 -m venv env
高级创建参数
# 1. 不带pip(纯干净环境) python -m venv --without-pip env # 2. 继承系统全局已安装包(极少用) python -m venv --system-site-packages env
3. 激活虚拟环境
激活成功标志:终端前缀出现(环境名),此时python/pip全部指向虚拟环境。
windows
- cmd终端
env\scripts\activate.bat 或者 env\scripts\activate
- powershell终端
.\env\scripts\activate.ps1
powershell报错执行策略解决方案(临时放行):set-executionpolicy remotesigned -scope currentuser
macos / linux
source env/bin/activate
验证是否进入虚拟环境
# windows where python # macos/linux which python
输出路径包含env文件夹,代表当前使用环境内python。
4. 依赖管理(项目核心)
安装第三方包
# 单包安装 pip install requests # 指定版本安装 pip install requests==2.34.2 # 国内清华镜像加速(解决下载慢) pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
导出依赖清单 requirements.txt
多人协作、服务器部署必备,记录当前环境所有包与精确版本:
# 正确导出命令(必须加 > 重定向符号) pip freeze > requirements.txt
生成文件示例:
certifi==2026.6.17 charset-normalizer==3.4.9 idna==3.18 requests==2.34.2 urllib3==2.7.0
新环境一键还原依赖
拿到项目后,无需手动逐个安装包:
pip install -r requirements.txt
查看已安装包
# 列出全部包 pip list # 查看单个包详情 pip show requests # 只看手动安装的顶层包(排除底层依赖) pip list --not-required
5. 退出虚拟环境
全平台统一命令,无需区分系统:
deactivate
执行后前缀(env)消失,切回系统全局python。
6. 删除虚拟环境(重点答疑)
核心结论
venv创建的环境可以直接删除整个文件夹(丢回收站/命令删除均可),无系统残留,包全部存于文件夹内,不会污染全局python。
操作步骤
- 先退出环境(必须执行,否则文件占用无法删除)
deactivate
- 删除文件夹
- windows可视化:资源管理器找到
env文件夹,右键删除/移入回收站; - windows命令行强制删除
rmdir /s /q env
- macos/linux命令删除
rm -rf env
重要区分(避坑)
- ✅ venv / virtualenv:直接删文件夹完全清理;
- ❌ conda创建的环境:不能手动删文件夹,会残留环境列表,必须用命令
conda remove -n 环境名 --all。
四、完整项目实操示例(langchain项目模板)
# 1. 进入项目文件夹 cd f:\langchain学习 # 2. 创建虚拟环境 python -m venv test_env # 3. 激活环境(cmd) test_env\scripts\activate.bat # 4. 安装依赖 pip install requests langchain langchain-openai -i https://pypi.tuna.tsinghua.edu.cn/simple # 5. 导出依赖清单 pip freeze > requirements.txt # 6. 开发完成退出环境 deactivate # 7. 废弃项目删除环境 rmdir /s /q test_env
五、最佳开发规范
- 一个项目一个独立环境,不共用虚拟环境;
- 统一命名
.venv,vs code/pycharm会自动识别; - 版本控制忽略虚拟环境,
.gitignore添加配置:
# 虚拟环境目录 env/ .venv/ venv/ # 缓存文件 __pycache__/ *.pyc # 环境变量文件 .env
- 每次新增包后执行
pip freeze > requirements.txt同步依赖; - 不随意移动虚拟环境文件夹,内部为硬编码绝对路径,移动后失效;如需迁移,重新创建环境+
requirements.txt还原。
六、常见问题faq
- 删除环境后全局python会丢包吗?
不会。虚拟环境与全局完全隔离,仅删除文件夹内的依赖,全局不受任何影响。 - 激活报错找不到activate脚本?
核对文件夹名称:windows是scripts,mac/linux是bin,路径大小写不要写错。 - pip freeze命令不生成文件?
缺少重定向符号>,错误命令pip freeze requirements.txt仅打印列表,正确写法pip freeze > requirements.txt。 - 虚拟环境占用空间太大怎么办?
无用环境直接删除文件夹,空环境约30mb,深度学习项目可达数gb,定期清理废弃环境。
七、命令速查表
| 操作 | windows cmd | macos/linux |
|---|---|---|
| 创建环境 | python -m venv env | python3 -m venv env |
| 激活环境 | env\scripts\activate.bat | source env/bin/activate |
| 导出依赖 | pip freeze > requirements.txt | pip freeze > requirements.txt |
| 批量安装依赖 | pip install -r requirements.txt | pip install -r requirements.txt |
| 退出环境 | deactivate | deactivate |
| 删除环境 | rmdir /s /q env | rm -rf env |
以上就是python官方venv虚拟环境的完整实操教程的详细内容,更多关于python官方venv虚拟环境实操的资料请关注代码网其它相关文章!
发表评论