VS Code中怎么创建并激活Python虚拟环境(venv)
详细讲解在Visual Studio Code中创建并激活Python虚拟环境(venv)的操作步骤、终端命令、常见报错排查及工作流最佳实践。
在 VS Code 中使用 Python 进行项目开发时,创建并激活虚拟环境的核心目的,是将当前工程所需的第三方库与计算机的全局 Python 环境完全隔离开来。这样做不仅能防止不同项目间因为依赖版本不兼容而发生冲突,也能保证部署迁移时的依赖清单清晰干净。完成这项任务其实包含两个紧密配合的动作:第一是在项目目录下生成独立的虚拟环境文件夹(业界通常命名为 .venv);第二是让 VS Code 的 Python 扩展识别并选定该环境中的解释器,使编辑器的代码补全、调试器以及集成终端都能在这个隔离环境下工作。本文将分别介绍通过 VS Code 图形界面命令面板自动创建,以及通过终端命令行手动创建与激活的完整方法,并解答初学者最容易遇到的权限限制与解释器识别问题。
前置准备:确认 Python 环境与官方扩展
在开始操作之前,需要确认两项基础配置已经就绪:
- 系统安装了 Python 3.3 及以上版本:自 Python 3.3 起,标准库内置了
venv模块,无需额外安装virtualenv等第三方工具。可以在电脑终端运行python --version(或python3 --version)来确认是否能够正常调用。 - VS Code 安装了官方 Python 扩展:在 VS Code 左侧活动栏点击扩展图标(快捷键
Ctrl+Shift+X/ macOS 为Cmd+Shift+X),搜索并安装由 Microsoft 发布的Python扩展。该扩展集成了环境检测、自动激活与调试支撑功能。 - 必须使用“打开文件夹”方式开启项目:VS Code 的虚拟环境管理是建立在“工作区”(Workspace)概念之上的。如果是单独打开一个
.py代码文件,VS Code 无法确定环境属于哪个项目,也就无法实现自动检测和关联。请务必点击菜单栏的文件 -> 打开文件夹...,打开你的工程根目录。
方法一:通过 VS Code 命令面板自动创建(推荐做法)
现代版本的 VS Code 提供了原生图形化流程,能够一次性完成“创建环境”、“选定解释器”和“配置终端”三个步骤,这是最推荐的做法。
步骤 1:调出创建环境向导
在已打开的项目窗口中,按下快捷键 Ctrl+Shift+P(macOS 为 Cmd+Shift+P)打开命令面板,在输入框中输入:
Python: Create Environment...
在下拉列表中点击该项,VS Code 会引导你选择环境类型。
步骤 2:选择环境类型与基础解释器
在随后的选项中:
- 环境类型:选择 Venv(使用标准库内置的轻量虚拟环境;若系统装有 Anaconda,列表中还会显示 Conda,这里选择 Venv 即可)。
- Python 解释器版本:选择你希望用来创建虚拟环境的基础 Python 版本(例如已安装的 Python 3.11 或 3.12)。
- 依赖文件(如有提示):如果项目根目录下已经存在
requirements.txt,向导会询问是否自动安装依赖,可以根据需要勾选或直接按回车跳过。
步骤 3:等待构建完成与自动绑定
VS Code 会在后台自动执行创建命令,窗口右下角会弹出进度提示“正在创建环境...”。创建完成后:
- 项目根目录下会出现一个名为
.venv的文件夹。 - VS Code 自动将该虚拟环境设置为当前工作区的默认解释器。窗口底部状态栏的 Python 版本标识会显示为类似
3.11.x ('.venv': venv)。 - 此后在该窗口新建的任何集成终端,都会自动完成环境激活。
方法二:使用终端命令行手动创建与激活
除了向导,很多开发者更习惯直接在集成终端中输入命令。手动操作有助于理解背后的底层机制,在向导受阻或需要自定义参数时尤为实用。
步骤 1:在 VS Code 中打开集成终端
按下快捷键 Ctrl + `(反引号,位于键盘 Esc 键下方),或点击菜单栏 终端 -> 新建终端。此时终端默认的工作目录就是当前工程根目录。
步骤 2:执行创建命令
根据操作系统输入对应的标准命令:
Windows 环境(PowerShell 或 CMD):
python -m venv .venv
macOS / Linux 环境(Bash 或 Zsh):
python3 -m venv .venv
在业界约定中,.venv 是首选名称。其好处在于:以点开头在 Unix 系统下默认隐藏,不易分散注意力;VS Code 的 Python 扩展默认将 .venv 列在环境探测列表的第一顺位;绝大多数主流 .gitignore 模板默认已经包含了 .venv/,能有效避免误将环境文件提交到代码仓库。
步骤 3:在终端中手动激活环境
创建完成后,环境文件已经存在于磁盘上,但在终端中它尚未生效。需要运行激活脚本将当前终端会话的 PATH 变量切到虚拟环境:
Windows PowerShell:
.\.venv\Scripts\Activate.ps1
Windows CMD(命令提示符):
.\.venv\Scripts\activate.bat
macOS / Linux(Bash 或 Zsh):
source .venv/bin/activate
激活成功后,终端命令行最前端会出现括号包裹的环境名,例如 (.venv) PS C:\projects\my_project>,这代表终端当前已处于虚拟环境中。
步骤 4:关键补刀:让 VS Code 编辑器也选定该环境
需要特别注意:在终端中手动激活虚拟环境,仅仅影响该终端窗口本身,并不代表 VS Code 的代码编辑器和调试器已经自动切换。
为了让 VS Code 的语法分析、代码跳转和调试运行也同步使用该环境:
- 按
Ctrl+Shift+P调出命令面板。 - 输入并选择
Python: Select Interpreter(选择解释器)。 - 在弹出的列表中,通常第一项就会显示刚刚创建的
Python 3.x.x ('.venv': venv) ./.venv/...,直接点击选中。 - 如果列表中未自动出现,点击
Enter interpreter path...(输入解释器路径),然后浏览选中.venv/Scripts/python.exe(Windows)或.venv/bin/python(macOS/Linux)即可。
关键辨析与避坑指南
在实际操作过程中,初学者常会遇到几个典型的困惑与报错,以下是原因分析与解决方法:
1. PowerShell 报错:“无法加载文件 Activate.ps1,因为在此系统上禁止运行脚本”
现象:在 Windows 系统下执行 .\.venv\Scripts\Activate.ps1 时,终端输出红色错误提示 PSSecurityException,说明脚本运行被阻止。
原因:Windows 默认的 PowerShell 执行策略(ExecutionPolicy)为 Restricted,出于安全考虑不允许执行任何非签名的本地 .ps1 脚本。
解决方法:无需修改全局系统策略,只需在当前用户作用域内放宽对本地脚本的限制。在终端中执行:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
系统询问是否更改策略时输入 Y 确认。关闭当前终端并重新打开,或者重新运行激活命令即可顺利通过。
2. 辨析:“终端激活”与“编辑器选择解释器”不是同一回事
常见误区是:在终端里运行 pip install pandas 成功了,但回到 main.py 中写 import pandas 时,编辑器依然报黄色波浪线警告“未解析的导入”。
这正是因为终端和编辑器处于不同的上下文:终端运行在 .venv 环境下,但 VS Code 底部状态栏选中的解释器仍是全局 Python。此时只要按照前文步骤执行 Python: Select Interpreter 并选中 .venv,编辑器的波浪线就会立即消失。
3. 新开终端没有自动激活环境
VS Code 具备自动激活功能,只要工作区选定了虚拟环境,新建终端时扩展会自动在后台帮你执行激活脚本。如果新建终端没有出现 (.venv) 前缀:
- 按
Ctrl+,打开设置,搜索python.terminal.activateEnvironment,确认该项处于勾选状态(默认为 true)。 - 如果刚刚才配置好解释器,已有终端不会动态变更,需要点击终端面板右上角的垃圾桶图标关闭旧终端,再按
Ctrl + `新建终端即可触发自动激活。
验证虚拟环境生效的检查清单
完成创建与激活后,建议通过以下三种方式快速验证环境是否真正处于生效状态:
| 验证维度 | 操作方式 | 预期正常输出(示例) | 说明 |
|---|---|---|---|
| 终端前缀检查 | 打开 VS Code 集成终端 | (.venv) PS C:\my_project> 或 (.venv) user@host:~/my_project$ |
最直观的标志,表示环境变量 PATH 已经被激活脚本优先导向 .venv |
| 命令路径检查 | 在终端执行命令: Windows: where pythonmacOS/Linux: which python |
返回的第一行路径必定包含 .venv,例如:C:\my_project\.venv\Scripts\python.exe |
确认当前终端调用的 python 与 pip 均来自隔离目录,而非系统全局目录 |
| 代码运行检查 | 在项目内新建 test_env.py 并运行:import sys; print(sys.executable) |
终端打印的路径指向当前项目的 .venv 文件夹内部 |
证明通过 VS Code 运行按钮或调试器启动的代码均运行在虚拟环境中 |
日常开发中的最佳实践与维护技巧
掌握了创建和激活后,在后续的持续迭代中,养成以下工程习惯能够进一步减少环境维护成本:
- 只向代码仓库提交依赖声明,不提交虚拟环境文件夹:正如前文图示所强调的,虚拟环境中的解释器与脚本包含当前系统绝对路径的软链接或绝对引用,不同操作系统(例如 Windows 与 Linux)之间的二进制结构完全不同。因此务必在工程根目录的
.gitignore文件中添加一行.venv/,而只将requirements.txt提交到 Git。 - 使用
python -m pip代替纯pip:在 Windows 环境下升级 pip 或安装某些可能替换执行文件的包时,直接执行pip install --upgrade pip偶尔会因为pip.exe正在运行而被系统锁定。改用python -m pip install --upgrade pip能确保先由 Python 进程调度,避免文件占用冲突。 - 更换项目路径后的处理:如果移动或重命名了项目的父级文件夹,原有的
.venv内部硬编码路径可能会失效,导致终端提示找不到解释器。遇到这种情况完全不需要慌张,直接删除原有的.venv文件夹,重新执行一次python -m venv .venv并pip install -r requirements.txt即可瞬间恢复完整开发环境。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













