必须手动指定虚拟环境中的python可执行文件路径:Windows为./.venv/Scripts/python.exe,macOS/Linux为./.venv/bin/python;路径须相对项目根目录、不含空格或中文,且需写入工作区.vscode/settings.json中python.defaultInterpreterPath字段,并彻底重启VSCode窗口以刷新Pylance缓存和终端激活状态。

VSCode不会自动使用你创建的venv,必须手动指定解释器路径——选错、漏选或路径写成绝对路径,都会导致补全失效、ModuleNotFoundError、调试跑错环境。
Python: Select Interpreter 该选哪个路径?
VSCode只认虚拟环境里python可执行文件本身,不是文件夹、不是activate脚本、也不是软链接。路径必须是相对于工作区根目录的相对路径:
- Windows:
./.venv/Scripts/python.exe(不是activate.bat,也不是python.exe的快捷方式) - macOS/Linux:
./.venv/bin/python(不是activate,也不是python3符号链接) - 如果用
venv而非.venv,对应为./venv/Scripts/python.exe或./venv/bin/python - 路径里不能含空格或中文,否则Pylance可能解析失败;建议统一用
.venv,Git和VSCode默认忽略它
为什么选对了路径,补全还是不准?
常见原因不是路径错,而是VSCode缓存或配置没同步生效:
-
python.defaultInterpreterPath必须写入当前工作区的.vscode/settings.json,而不是用户级设置——用户级设置会覆盖项目级配置 - Pylance类型信息有强缓存,改完解释器后必须重启VSCode,否则补全、跳转、类型提示仍基于旧环境
- 状态栏显示
Python 3.x ('.venv': venv)只是UI提示,不等于真实生效;验证唯一可靠方式是运行import sys; print(sys.executable),输出必须含.venv - 如果项目在WSL中创建但VSCode运行在Windows端,
./.venv/bin/python无法直接访问,需用\wsl$Ubuntu\home\user\project\.venv\bin\python这类wsl$前缀路径
终端里pip install还是装到全局?
选了解释器 ≠ 终端自动激活环境。VSCode集成终端默认不运行activate脚本:
立即学习“Python免费学习笔记(深入)”;
- 必须设
python.terminal.activateEnvironment为true(默认是true,但容易被用户级设置覆盖) - Windows PowerShell用户额外注意:
python.terminal.launchArgs若被设为["-NoExit", "-Command", ""],会清空激活逻辑,建议清空该项 - 验证方法:新开终端后,提示符前应出现
(.venv)前缀;若没有,说明没激活成功,此时which python或where python仍指向系统路径
Jupyter Notebook kernel要单独配
VSCode里编辑器解释器和Notebook kernel是两套独立配置,互不影响:
- 右上角kernel下拉菜单必须手动选匹配的
.venv环境,不能依赖编辑器解释器选择结果 - 即使
sys.executable在普通Python文件里已指向.venv,Notebook仍可能用系统kernel,导致import失败 - kernel列表里带
(venv)标记的选项,路径通常为./.venv/share/jupyter/kernels/python3(macOS/Linux)或类似结构,选错就白配
最易被忽略的是:改完python.defaultInterpreterPath和python.terminal.activateEnvironment后不重启VSCode,Pylance缓存不会刷新,sys.executable可能显示正确,但补全、类型推导、调试断点仍走老环境。



















