vs code 本身不创建虚拟环境,而是通过官方 python 扩展调用 python -m venv .venv 封装执行,自动处理路径、权限和工作目录校验;必须以文件夹形式打开项目才能触发该命令,且创建后需手动激活终端并选择解释器,否则 pip install 仍作用于全局环境。

VS Code 本身不创建虚拟环境,它只负责识别和使用你已创建好的 venv 或 conda 环境;所谓“在 VS Code 中创建”,实际是调用 Python 内置命令或通过扩展封装执行,核心仍是本地命令行逻辑。选错解释器、没激活环境、终端未同步这三类问题占配置失败的 90% 以上。
Python: Create Environment 命令到底干了什么
这个命令(不是 Python: Select Interpreter)是官方 Python 扩展提供的图形化入口,它内部执行的是 python -m venv .venv,并自动处理路径权限、工作目录校验和 Shell 初始化问题。它比手动敲命令更可靠,尤其在 Windows 的 PowerShell 或受限用户权限下。
- 必须以「文件夹」方式打开项目,否则该命令不可见——双击
.py文件启动 VS Code 是空工作区,扩展不生效 - 默认生成
.venv(隐藏目录),不是venv;名字可改,但路径必须在当前工作区根目录下 - 执行后不会自动激活,也不会自动打开终端;你仍需手动选择解释器,否则
pip install仍走全局环境 - 如果卡住无响应,大概率是当前终端 Shell 不支持直接执行 Python 命令(如某些 Git Bash 配置),换用 VS Code 内置的 Command Prompt 或 PowerShell 终端重试
为什么选了解释器,pip install 还是装到全局
VS Code 的集成终端默认不自动激活虚拟环境,即使你已在命令面板里选了 .venv/bin/python。解释器选择只影响代码运行、调试、补全等编辑器功能,不影响终端中 pip 的行为。
- 最稳妥:在终端中先手动激活——Windows:
.venvScriptsctivate,macOS/Linux:source .venv/bin/activate - 最省事:用命令面板运行
Python: Create Terminal,它会自动激活当前选中的解释器对应环境 - 绝对避免:在未激活状态下直接敲
pip install requests,哪怕解释器已选对,包也进不了.venv - 验证是否装对:在终端中运行
pip list,看输出顶部是否显示Package Version,且没有全局包混入;或者检查.venv/lib/python3.x/site-packages/(macOS/Linux)或.venvLibsite-packages(Windows)里是否存在对应包目录
sys.executable 和状态栏路径不一致怎么办
这是最隐蔽也最常被忽略的问题:VS Code 底部状态栏显示的解释器路径是对的,但你在终端里 import sys; print(sys.executable) 输出的却是系统全局 Python 路径。说明你正在用一个未激活的终端运行代码,或者终端启动时没继承 VS Code 的解释器上下文。
- 状态栏路径只是编辑器“认为”该用哪个解释器,不等于终端已切换过去
- 运行 Python 文件时,VS Code 默认调用
Run Python File in Terminal,它会自动使用当前选中的解释器——所以直接右键运行Run Python File是安全的;但如果你在终端里手敲python script.py,就完全取决于当前终端是否激活了环境 - 临时修复:关闭所有终端,再用
Python: Create Terminal新开一个 - 长期建议:在
settings.json中加这一行:"python.defaultInterpreterPath": "./.venv/bin/python"(macOS/Linux)或"python.defaultInterpreterPath": ".\.venv\Scripts\python.exe"(Windows),强制新终端默认使用该解释器
真正麻烦的从来不是创建环境,而是让「编辑器」「终端」「运行命令」「调试器」四者全部指向同一个 python 可执行文件。只要其中一环脱节,就会出现 import 报错、包找不到、版本不一致这些看似随机实则必然的问题。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











