Windows下Python创建虚拟环境的完整步骤(CMD与PowerShell)

宋时安
宋时安
发布时间:2026-11-05 | 7人浏览过
原创

本文详解在Windows系统下使用CMD与PowerShell创建并激活Python虚拟环境(venv)的完整流程,包含前置环境检查、核心命令执行、PowerShell执行策略权限报错排查及环境验证方法。

Windows下Python创建虚拟环境的完整步骤(CMD与PowerShell)
图 1:Windows 下 Python 虚拟环境与双终端支持概览

在 Windows 环境下进行 Python 开发时,不同项目往往依赖第三方库的不同版本。直接把库安装在全局 Python 解释器中,容易导致版本冲突或卸载残留。通过 Python 内置的 venv 模块,只需在项目目录下执行 python -m venv .venv 即可生成轻量独立的运行环境。针对 Windows 常用的“命令提示符 (CMD)”与“Windows PowerShell”,激活该环境所需的脚本文件与系统执行权限存在差异。本文将按照实际操作顺序,详细讲解环境检查、目录创建、两种终端下的激活方法与权限排错,以及最终的验证与清理步骤。

准备工作:验证 Python 环境与系统 PATH

在创建虚拟环境之前,必须确保系统已正确安装 Python 3.3 或更高版本(内置自带 venv 模块),并且 Python 主程序与 pip 已添加至系统环境变量 PATH 中。

打开 CMD 或 PowerShell,执行以下命令查看当前版本:

python --version
python -m pip --version
终端示例输出
Python 3.11.8 pip 24.0 from C:\Users\Username\AppData\Local\Programs\Python\Python311\Lib\site-packages\pip (python 3.11)

若提示 'python' 不是内部或外部命令,也不是可运行的程序,说明在安装 Python 时未勾选“Add python.exe to PATH”选项。读者可以重新运行 Python 安装包选择“Modify”并勾选该选项,或者手动在 Windows“系统属性 - 环境变量”中把 Python 的安装目录及 Scripts 目录加入到用户 PATH 变量中。

Windows下Python创建虚拟环境的完整步骤(CMD与PowerShell)
图 2:Python 虚拟环境搭建的四步标准流程

步骤一:在项目根目录下创建虚拟环境

虚拟环境应当与具体的工程项目绑定。首先打开终端,使用 cd 命令切换到你的项目工作目录。例如:

cd C:\Projects\my_project

确认当前路径位于项目根目录后,执行创建虚拟环境命令:

python -m venv .venv

在这条命令中:

  • -m venv:调用 Python 标准库中内置的虚拟环境管理模块。
  • .venv:为所创建环境指定的目录名称。在 Windows 和各类编辑器(如 VS Code、PyCharm)中,推荐命名为 .venv 或 venv,IDE 能够自动检测并将其识别为项目的解释器环境。以点开头的名称还可以避免干扰普通的源码检索。

命令执行后,终端在数秒内不会输出额外文字并直接返回命令提示符,这是正常现象。此时在 my_project 目录下会新增一个 .venv 文件夹。

Windows下Python创建虚拟环境的完整步骤(CMD与PowerShell)
图 3:虚拟环境内部目录结构与依赖隔离机制

展开新生成的 .venv 目录,可以看到其内部包含了三个关键构成:

  1. pyvenv.cfg:环境的核心配置文件,记录了底座 Python 的主安装路径及版本号。
  2. Scripts/:存放用于该环境的 python.exe 解释器代理副本、pip.exe 依赖管理工具,以及各类终端对应的激活与退出脚本(activate.bat、Activate.ps1 等)。
  3. Lib/site-packages/:独立的第三方库安装目录。未来在此环境下通过 pip 安装的任何轮子与包,都会只落入该目录中,绝对不会影响全局 Python。

步骤二:激活虚拟环境(CMD 与 PowerShell 对比)

创建目录后,虚拟环境并不会自动生效,必须在当前终端会话中运行激活脚本。激活的本质,是临时修改当前终端会话的 PATH 环境变量,将 .venv\Scripts 置于最前端,并修改终端的提示符文本。

由于 CMD 与 PowerShell 的脚本解析机制不同,所调用的脚本与涉及的权限要求存在关键差异。

Windows下Python创建虚拟环境的完整步骤(CMD与PowerShell)
图 4:CMD 与 PowerShell 在激活脚本与执行策略上的差异对照

方式 1:在命令提示符 (CMD) 中激活

CMD 使用 Windows 经典的批处理机制,直接执行 activate.bat 脚本即可:

.venv\Scripts\activate.bat
激活成功后的终端表现
C:\Projects\my_project> .venv\Scripts\activate.bat (.venv) C:\Projects\my_project>

可以看到,命令提示符最左侧出现了 (.venv) 标识,表示当前会话已成功切换至虚拟环境。CMD 默认不设脚本执行限制,因此这一步通常可以直接执行成功。

方式 2:在 Windows PowerShell 中激活与权限配置

PowerShell 使用专用的 .ps1 脚本。在 PowerShell 窗口中,执行对应路径:

.\.venv\Scripts\Activate.ps1

在大部分全新的 Windows 10/11 系统中,首次执行该命令通常会遭遇红字报错:

PowerShell 常见报错示例
.\.venv\Scripts\Activate.ps1 : 无法加载文件 C:\Projects\my_project\.venv\Scripts\Activate.ps1, 因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 1 + .\.venv\Scripts\Activate.ps1 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
报错原因解析:Windows 为 PowerShell 设置了默认的安全执行策略(Execution Policy),初始值通常为 Restricted(严格受限),该策略允许执行单条命令,但禁止运行任何未签名的脚本文件。而 Activate.ps1 属于本地生成的脚本,因此被系统安全机制直接拦截。

推荐解决方法:读者不需要也不应该盲目以管理员权限全局关闭系统保护,最佳实践是只对“当前终端会话进程”或“当前用户”放行本地脚本。推荐在当前 PowerShell 窗口中执行:

Set-ExecutionPolicy -Scope Process RemoteSigned

该命令中:

  • -Scope Process:授权范围仅限当前这一个打开的 PowerShell 窗口进程。一旦窗口关闭,授权自动失效,不会降低操作系统全局或其他软件的安全性。
  • RemoteSigned:允许运行本地创建的未签名脚本,对于网络下载的脚本仍要求必须拥有受信任的数字签名。

执行完成后,再次运行激活命令,即可顺利激活:

.\.venv\Scripts\Activate.ps1
PowerShell 激活成功示例
(.venv) PS C:\Projects\my_project>

CMD 与 PowerShell 关键行为差异对照

对比维度 命令提示符 (CMD) Windows PowerShell
激活脚本文件 .venv\Scripts\activate.bat .\.venv\Scripts\Activate.ps1
默认权限门槛 无拦截,直接允许运行批处理 受 ExecutionPolicy 拦截,默认禁止脚本
安全解决策略 无需干预 执行 Set-ExecutionPolicy -Scope Process RemoteSigned
路径补全体验 Tab 键补全斜杠 .venv\Scripts\... Tab 键自动添加相对定位前缀 .\.venv\...
退出环境命令 deactivate deactivate

步骤三:验证隔离状态与安装依赖

当终端提示符出现 (.venv) 后,需要确认系统调用的 Python 确实来自项目目录,而非系统全局目录。

在 CMD 中运行:

where python

在 PowerShell 中运行:

Get-Command python | Select-Object -ExpandProperty Source
验证输出示例
C:\Projects\my_project\.venv\Scripts\python.exe C:\Users\Username\AppData\Local\Programs\Python\Python311\python.exe

排在首行的绝对路径必须是 .venv\Scripts\python.exe,这说明虚拟环境已成功夺取最高优先级。此时可以放心使用 pip 安装任何项目所需的包,例如安装 requests:

pip install requests

安装过程完成后,运行 pip list,可以看到此时环境中仅包含刚安装的 requests 及其必要依赖包,全局环境中的其他庞杂依赖均被完全隔离在外。

步骤四:退出与清理虚拟环境

Windows下Python创建虚拟环境的完整步骤(CMD与PowerShell)
图 5:虚拟环境从创建、激活、使用到销毁的全生命周期闭环

当当前项目的开发或调试工作结束时,按照以下规范进行退出或清理:

1. 退出虚拟环境

在 CMD 或 PowerShell 中直接输入内置函数名称:

deactivate

回车后,终端提示符前缀的 (.venv) 随之消失,当前会话的 PATH 环境变量自动恢复为激活前的系统原始值。

2. 删除虚拟环境

Python 虚拟环境是完全自包含的“目录型环境”,不会在 Windows 注册表或系统服务中写入任何数据。如果需要丢弃或重建环境,只需退出后直接将 .venv 文件夹从磁盘中删除:

  • CMD 删除命令:rmdir /s /q .venv
  • PowerShell 删除命令:Remove-Item -Recurse -Force .venv

高频问题与注意事项

1. 移动项目目录后虚拟环境失效:
虚拟环境创建时,pyvenv.cfg 以及 Scripts 目录下的 activate 脚本中记录了当时的绝对文件路径。如果移动或重命名了项目根目录,虚拟环境通常会无法正确定位 Python 解释器。最简便稳妥的解决办法是删除旧的 .venv 文件夹,在新的路径下重新运行 python -m venv .venv。
2. 指定特定 Python 版本创建环境:
若系统中安装了多个 Python 版本(例如 Python 3.10 与 Python 3.12),Windows 自带的 Python 启动器 py 可以精准指定版本:
py -3.10 -m venv .venv
3. 协作与版本控制(.gitignore):
切勿把 .venv 文件夹提交到 Git 等代码版本控制仓库中,不同计算机的路径与二进制文件不通用。应当在项目根目录的 .gitignore 中加入一行 .venv/,并通过 pip freeze > requirements.txt 记录依赖清单,供协作者在本地拉取代码后独立重建环境。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表