VS Code不自动创建虚拟环境,需先用python -m venv .venv命令在项目根目录创建,再通过Python: Select Interpreter手动指定.venv/bin/python或.venv\Scripts\python.exe路径;终端默认不激活环境,需配置python.terminal.launchArgs或手动运行activate脚本。

VS Code 本身不自动创建或管理 Python 虚拟环境,但能识别、激活并切换已存在的虚拟环境。关键在于:先用命令行创建好环境,再在 VS Code 中正确指向它的 python 可执行文件。
如何创建兼容 VS Code 的虚拟环境
VS Code 依赖虚拟环境根目录下的 pyvenv.cfg 和可执行的 python(Windows 是 python.exe)来识别它。推荐使用标准库 venv 创建:
- 在项目根目录运行:
python -m venv .venv(.venv是常见命名,也可用venv或env) - 不要用
conda create或pipenv后直接打开——它们生成的结构 VS Code 可能无法自动识别,需手动指定解释器路径 - 创建后别急着启动 VS Code;确保
.venv/bin/python(macOS/Linux)或.venv\Scripts\python.exe(Windows)存在且可执行
在 VS Code 中手动选择解释器
VS Code 的“Python 解释器”选择逻辑是:扫描工作区及父目录中所有疑似 Python 可执行文件,但不会递归扫描子文件夹(比如不会进 node_modules 或 __pycache__)。所以 .venv 必须放在工作区根目录或其直接子目录下。
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入并选择Python: Select Interpreter - 如果列表里没出现你的
.venv,选Enter interpreter path...→ 然后手动导航到.venv/bin/python或.venv\Scripts\python.exe - 选中后,VS Code 底部状态栏会显示解释器路径,且
python.defaultInterpreterPath会写入当前工作区的.vscode/settings.json
为什么终端没自动激活虚拟环境
VS Code 集成终端默认不自动运行 activate 脚本,即使解释器已切换成功。这意味着你在终端里运行 pip list 仍可能看到全局包。
立即学习“Python免费学习笔记(深入)”;
-
解决方法:在
.vscode/settings.json中添加:"python.terminal.launchArgs": ["-Command", "source .venv/bin/activate"]
(macOS/Linux)或"python.terminal.launchArgs": [".venv\\Scripts\\Activate.ps1"]
(Windows PowerShell) - 更稳妥的做法是:在终端里手动运行
source .venv/bin/activate(bash/zsh)或.venv\Scripts\activate.bat(cmd) - 注意:
python.terminal.executeInFileDir设为true可避免因终端启动路径不对导致激活失败
最常被忽略的一点:VS Code 的 Python 扩展只在打开文件夹(而非单个文件)时才完整加载解释器发现逻辑;如果只是打开一个 .py 文件,Select Interpreter 列表可能为空,必须先用 File > Open Folder 打开整个项目。










