Python venv教程:创建、激活与验证虚拟环境

venv用于在现有Python解释器之上创建轻量虚拟环境。每个环境拥有独立的解释器入口和`site-packages`,项目安装的第三方包默认与其他环境隔离。它解决的是依赖冲突和解释器选择问题,不是虚拟机,也不会模拟另一套操作系统。

项目虚拟环境在项目目录创建并激活环境,确认解释器路径后再安装依赖。

项目隔离

每个项目维护独立依赖组合。

路径验证

激活后确认解释器指向.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. 1.打开终端,使用cd进入项目根目录。
  2. 2.运行python --versionwhere python确认基础解释器。
  3. 3.运行python -m venv .venv创建环境。
  4. 4.根据终端类型执行对应激活脚本。
  5. 5.激活后再次运行where pythonpython -m pip --version
  6. 6.安装项目依赖并运行最小导入测试。

创建命令会使用当前python命令对应的版本。如果需要明确指定另一版本,应先使用该版本的解释器或启动器命令创建,不要创建后再手工替换环境中的可执行文件。

Windows激活与退出命令

终端 激活命令 提示
命令提示符.venv\Scripts\activate.bat提示符通常出现环境名
PowerShell.\.venv\Scripts\Activate.ps1可能受执行策略限制
Git Bashsource .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 pythonpython -m pip --version。如果第一项不是.venv,可能使用了错误激活脚本、在另一个终端窗口执行,或提示符只是手工修改。以可执行文件路径为准。

详细的包管理命令见pip使用教程。基础Python命令异常时先查看PATH与多版本排查。还没有项目脚本时,可先完成Python新手教程再创建环境。

为环境写一个简短的重建说明,包括基础Python版本、创建命令、激活方式和依赖安装命令。这样即使.venv损坏或更换电脑,也可以从代码和清单恢复,而不需要复制包含旧绝对路径的环境目录。

常见问题

venv和virtualenv有什么区别?

venv是Python标准库提供的环境工具,virtualenv是第三方工具。多数基础项目可以先使用venv,再根据兼容需求评估其他工具。

每次打开项目都要激活吗?

新的终端会话通常需要重新激活。编辑器可以保存项目解释器选择,但仍应检查运行配置是否指向.venv

可以把.venv提交到代码仓库吗?

通常不建议。提交项目代码和依赖清单,在目标机器按指定Python版本重新创建环境更稳定。

删除.venv会删除项目代码吗?

只要项目代码不在.venv目录内,删除环境不会删除源代码,但已安装包会消失。操作前仍应确认路径并保存依赖清单。

继续浏览

下一步怎么走

本页只解决一个主要问题,后续操作可按需求进入对应页面。

获取Python3 Windows安装器

创建虚拟环境前需要可用的Python解释器,可先在下载页核对本站分发记录。

前往Python下载页