Python venv教程:创建、激活与验证虚拟环境
venv用于在现有Python解释器之上创建轻量虚拟环境。每个环境拥有独立的解释器入口和`site-packages`,项目安装的第三方包默认与其他环境隔离。它解决的是依赖冲突和解释器选择问题,不是虚拟机,也不会模拟另一套操作系统。
进入项目创建 .venv激活环境验证路径项目隔离
每个项目维护独立依赖组合。
路径验证
激活后确认解释器指向.venv。
可重建
保留依赖清单,不提交环境目录。
开始前应确保python --version能返回预期版本。本站收录记录的version原值为0,完整包文件名含3.9.0线索;Python 3.9已经结束上游支持。venv会基于创建命令所调用的解释器建立环境,因此长期项目应先确认基础Python版本仍符合依赖和安全要求。
为什么项目需要独立环境
假设项目A需要某个库的1.x版本,项目B需要2.x版本,如果两者都安装在全局Python中,升级其中一个可能破坏另一个。使用venv后,每个项目可以维护自己的依赖组合。删除虚拟环境目录不会删除项目源代码,但会丢失已安装的环境内容,因此要保留依赖清单以便重建。
虚拟环境也能让编辑器、终端和部署脚本对“使用哪套Python”形成一致约定。常见目录名是.venv,它清楚表达用途,并便于编辑器自动发现。不要把.venv当成代码仓库的一部分或唯一备份,通常应在版本控制中忽略它。
在Windows创建.venv
创建环境前先固定项目目录和基础解释器,随后再执行创建、激活和路径验证,避免环境生成在错误的位置。
- 1.打开终端,使用
cd进入项目根目录。 - 2.运行
python --version和where python确认基础解释器。 - 3.运行
python -m venv .venv创建环境。 - 4.根据终端类型执行对应激活脚本。
- 5.激活后再次运行
where python和python -m pip --version。 - 6.安装项目依赖并运行最小导入测试。
创建命令会使用当前python命令对应的版本。如果需要明确指定另一版本,应先使用该版本的解释器或启动器命令创建,不要创建后再手工替换环境中的可执行文件。
Windows激活与退出命令
| 终端 | 激活命令 | 提示 |
|---|---|---|
| 命令提示符 | .venv\Scripts\activate.bat | 提示符通常出现环境名 |
| PowerShell | .\.venv\Scripts\Activate.ps1 | 可能受执行策略限制 |
| Git Bash | source .venv/Scripts/activate | 使用斜杠路径 |
| 退出环境 | deactivate | 返回激活前的命令环境 |
激活的本质是临时调整当前终端的PATH,使环境内解释器排在前面。关闭终端后激活状态会消失,这不是环境被删除。下次进入项目需要重新激活,或让编辑器直接选择.venv中的解释器。
如何确认环境真的生效
环境名称出现在提示符中只是界面信号,解释器位置、包管理器目录和实际导入结果才是可靠的验证依据。
不要只看提示符前面的(.venv)。运行where python,第一项应指向当前项目的.venv\Scripts\python.exe。运行python -m pip --version,路径应位于同一环境。再安装一个项目需要的包并用show检查位置。
可以在激活前后分别运行python -c "import sys; print(sys.executable)"。输出路径发生可解释变化,说明终端调用的解释器已经切换。如果编辑器运行脚本时仍使用全局环境,需要在编辑器的解释器选择中指定项目.venv,不能只依赖外部终端的激活状态。
在环境中管理依赖
环境激活后仍要保持明确的解释器调用方式,并及时记录项目依赖,确保其他电脑或后续维护时能够重建。
激活后仍推荐使用python -m pip,因为它明确绑定当前解释器。安装完成后运行测试,再根据项目需要生成依赖清单。pip freeze会输出环境内所有已安装包,提交前应检查是否包含仅用于临时调试的内容。
重建环境时,先退出正在使用的.venv,确认项目代码和依赖清单已保存,再删除旧环境目录,使用目标Python重新创建并安装清单。不要从另一台电脑直接复制整个虚拟环境目录;其中脚本和路径可能绑定原位置,重建通常更可靠。
常见失败与处理
PowerShell提示脚本被禁止运行时,先阅读错误并了解组织的执行策略,不要直接永久降低整机安全设置。可以使用命令提示符对应的激活脚本,或按管理员批准的范围调整当前用户或当前进程策略。企业电脑应遵循组织策略。
创建环境时报No module named venv或失败时,先确认正在调用哪套Python以及安装是否完整。在线安装器未完成组件获取、解释器损坏或发行版裁剪都可能影响venv。不要从未知网站单独下载venv文件覆盖标准库。
激活后包仍装到全局位置时,检查where python和python -m pip --version。如果第一项不是.venv,可能使用了错误激活脚本、在另一个终端窗口执行,或提示符只是手工修改。以可执行文件路径为准。
详细的包管理命令见pip使用教程。基础Python命令异常时先查看PATH与多版本排查。还没有项目脚本时,可先完成Python新手教程再创建环境。
为环境写一个简短的重建说明,包括基础Python版本、创建命令、激活方式和依赖安装命令。这样即使.venv损坏或更换电脑,也可以从代码和清单恢复,而不需要复制包含旧绝对路径的环境目录。
常见问题
venv和virtualenv有什么区别?
venv是Python标准库提供的环境工具,virtualenv是第三方工具。多数基础项目可以先使用venv,再根据兼容需求评估其他工具。
每次打开项目都要激活吗?
新的终端会话通常需要重新激活。编辑器可以保存项目解释器选择,但仍应检查运行配置是否指向.venv。
可以把.venv提交到代码仓库吗?
通常不建议。提交项目代码和依赖清单,在目标机器按指定Python版本重新创建环境更稳定。
删除.venv会删除项目代码吗?
只要项目代码不在.venv目录内,删除环境不会删除源代码,但已安装包会消失。操作前仍应确认路径并保存依赖清单。
继续浏览
下一步怎么走
本页只解决一个主要问题,后续操作可按需求进入对应页面。