首页 > 编程语言 >Python官方venv虚拟环境完整实操教程

Python官方venv虚拟环境完整实操教程

来源:互联网 2026-07-22 08:08:08

Python3.3及以上版本内置虚拟环境模块,可为每个项目创建独立环境,隔离依赖,避免污染全局安装。通过依赖清单文件可复现环境。操作包括创建、激活、安装依赖、退出及删除文件夹,整个过程简洁高效,适合团队协作与部署。

一、什么是venv虚拟环境

Python 3.3 及以上版本内置了 venv 模块,无需额外安装,官方推荐,轻量且高效。许多初学者对“虚拟环境”概念不清晰,简单来说,就是为每个项目创建一个独立的空间,其中的 Python 解释器和第三方库完全属于该项目,彼此互不干扰。

核心作用

  1. 依赖隔离:不同项目可使用不同版本的 Python 和第三方库,彻底避免包版本冲突。例如,项目 A 需要 requests 2.25,项目 B 需要 2.34,以往全局安装会冲突,现在每个项目独立管理。
  2. 不污染全局 Python:所有安装的包仅存在于当前虚拟环境中,不影响系统全局的 Python 环境,系统自带的 Python 保持干净。
  3. 环境可复现:通过 requirements.txt 记录依赖,其他人获取项目后只需一条命令即可还原环境,便于团队协作和服务器部署。
  4. 安全测试:可随意安装、升级、卸载包,甚至进行破坏性测试,不会影响其他项目。环境损坏时,只需删除文件夹并重建,无任何心理负担。

Python官方venv虚拟环境完整实操教程

长期稳定更新的攒劲资源: >>>点此立即查看<<<

主流虚拟环境工具对比

工具类型优势适用场景
venvPython内置零安装、轻量、官方标准普通Python项目、日常开发
virtualenv第三方兼容Python2、功能拓展老旧Python版本项目
condaAnaconda配套支持Python/C++库、多语言数据分析、AI深度学习

二、虚拟环境目录结构

使用 venv 创建环境后,项目目录下会生成一个文件夹(例如 env),该文件夹包含完整的虚拟环境。所有解释器、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版本

开始前,确认电脑上安装的 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 是虚拟环境文件夹名,行业常用 .venvvenvtest_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

第一个参数 --without-pip 创建的环境连 pip 都没有,适用于极端干净的测试环境。第二个参数 --system-site-packages 让虚拟环境“共享”全局已安装包,通常不推荐,因为会失去隔离意义。

3. 激活虚拟环境

激活成功的标志:终端命令行最前面出现 (环境名) 提示,例如 (env) C:\Users\...>。此时执行的 pythonpip 均指向虚拟环境,而非系统全局。

Windows

  1. CMD终端
envScriptsactivate.bat
或者
envScriptsactivate
  1. PowerShell终端
.envScriptsActivate.ps1

如果 PowerShell 报错“执行策略不允许运行脚本”,可用以下命令临时放行:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

macOS / Linux

source env/bin/activate

验证是否进入虚拟环境

# Windows
where python

# macOS/Linux
which python

如果输出路径包含 env 文件夹,表明已成功进入虚拟环境。

4. 依赖管理(项目核心)

安装第三方包

# 单包安装
pip install requests

# 指定版本安装
pip install requests==2.34.2

# 国内清华镜像加速(解决下载慢)
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

国内用户使用清华镜像源可显著提升下载速度,避免从 PyPI 官方源下载时的缓慢问题。

导出依赖清单 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

pip list --not-required 命令非常实用,可过滤掉被其他包自动依赖的底层库,仅显示主动安装的包。

5. 退出虚拟环境

全平台通用,只需一条命令:

deactivate

执行后,终端前的 (env) 消失,表明已回到系统全局 Python。

6. 删除虚拟环境(重点答疑)

核心结论

使用 venv 创建的环境,直接删除整个文件夹即可,无任何系统残留。所有包均位于文件夹内,删除后彻底清理,不会污染全局。

操作步骤

  1. 先退出环境(必须执行,否则文件被占用无法删除)
deactivate
  1. 删除文件夹
  • Windows 可视化:在资源管理器找到 env 文件夹,右键删除或移入回收站。
  • Windows 命令行强制删除
rmdir /s /q env
  • macOS/Linux 命令删除
rm -rf env

重要区分(避坑)

  • venv / virtualenv:直接删除文件夹即可完全清理。
  • conda 创建的环境:不能手动删除文件夹,否则会残留环境列表,必须使用命令 conda remove -n 环境名 --all 删除。

四、完整项目实操示例(LangChain项目模板)

以 LangChain 学习项目为例,展示实际开发中的操作流程:

# 1. 进入项目文件夹
cd F:langchain学习

# 2. 创建虚拟环境
python -m venv test_env

# 3. 激活环境(CMD)
test_envScriptsactivate.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

五、最佳开发规范

  1. 一个项目一个独立环境,避免共用虚拟环境,否则隔离效果丧失。
  2. 统一命名 .venv,便于 VS Code 和 PyCharm 自动识别并激活,减少手动操作。
  3. 版本控制中忽略虚拟环境文件夹,在 .gitignore 中添加以下内容:
# 虚拟环境目录
env/
.venv/
venv/
# 缓存文件
__pycache__/
*.pyc
# 环境变量文件
.env
  1. 每次新增包后,立即执行 pip freeze > requirements.txt 同步依赖清单,养成良好习惯。
  2. 不要随意移动虚拟环境文件夹,因为内部路径为硬编码绝对路径,移动后失效。如需迁移,重新创建环境并通过 requirements.txt 还原依赖。

六、常见问题FAQ

  1. 删除环境后全局Python会丢包吗?

不会。虚拟环境与全局完全隔离,删除的仅是文件夹内的依赖,全局不受影响。

  1. 激活报错找不到activate脚本?

核对文件夹名称:Windows 下为 Scripts,mac/Linux 下为 bin,注意路径大小写。

  1. pip freeze 命令不生成文件?

检查是否遗漏重定向符号 >。错误写法 pip freeze requirements.txt 仅将列表打印到屏幕,正确写法 pip freeze > requirements.txt 才能写入文件。

  1. 虚拟环境占用空间太大怎么办?

无用的环境直接删除文件夹。一个空环境约 30MB,深度学习项目安装包后可能达数 GB,定期清理废弃环境可释放磁盘空间。

七、命令速查表

操作Windows CMDmacOS/Linux
创建环境python -m venv envpython3 -m venv env
激活环境envScriptsactivate.batsource env/bin/activate
导出依赖pip freeze > requirements.txtpip freeze > requirements.txt
批量安装依赖pip install -r requirements.txtpip install -r requirements.txt
退出环境deactivatedeactivate
删除环境rmdir /s /q envrm -rf env

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。