VS Code 运行 Python 需正确配置:仅安装 ms-python.python 插件,准确设置解释器路径(指向 python.exe)、settings.json 三项核心配置及 launch.json 中使用 runpy 模块调试。

VS Code 本身不自带 Python 运行环境或智能支持,装了插件也不等于能跑代码——关键在插件选对、Python 解释器路径配准、以及 settings.json 里几个核心配置项是否生效。
只装这一个插件:ms-python.python
微软官方维护的 ms-python.python(旧名 “Python”)已整合 linting、debugging、Jupyter、test discovery 等全部能力。别再装 python-extension-pack 或单独装 pylintautopep8venv 等“辅助插件”——它们要么已被内置,要么会与主插件冲突导致 ImportError 或断点失效。
实操建议:
- 卸载所有其他 Python 相关插件,仅保留
ms-python.python - 重启 VS Code,确保左下角状态栏出现 Python 版本号(如
Python 3.11.9),点击它可切换解释器 - 若状态栏无反应,说明插件未激活:按
Ctrl+Shift+P→ 输入Python: Select Interpreter手动指定
解释器必须指向 python.exe,不是 Scripts 目录
常见错误是把虚拟环境路径设成 C:\myenv\Scripts,结果调试时报 ModuleNotFoundError 或无法识别 pip。VS Code 要的是可执行文件路径,不是目录。
立即学习“Python免费学习笔记(深入)”;
正确路径示例:
- conda 环境:
C:\Users\me\miniconda3\envs\myproj\python.exe - venv:
C:\proj\venv\Scripts\python.exe(Windows)或/proj/venv/bin/python(macOS/Linux) - 系统 Python:
C:\Python311\python.exe或/usr/bin/python3
验证方式:在终端中运行 which python(macOS/Linux)或 where python(Windows),复制输出的完整路径粘贴进解释器选择框。
settings.json 必配三项(非可选)
光靠 GUI 设置容易遗漏关键项,尤其在多工作区或远程开发时。直接编辑工作区或用户级 settings.json 更可靠:
{
"python.defaultInterpreterPath": "./venv/Scripts/python.exe",
"python.terminal.launchArgs": ["-i"],
"python.testing.pytestArgs": ["--tb=short"]
}
说明:
-
python.defaultInterpreterPath:强制指定解释器,避免每次打开都重选;路径支持相对(./venv/...)和绝对 -
python.terminal.launchArgs:加-i让 Python 终端启动后保持交互态,方便调试后手动查变量 -
python.testing.pytestArgs:否则 pytest 可能默认用--tb=auto,报错堆栈过长难定位
注意:python.defaultInterpreterPath 的值必须与你实际选中的解释器路径完全一致,大小写、斜杠方向(Windows 下用反斜杠或正斜杠均可)都要匹配。
调试失败?先检查 launch.json 的 module 和 justMyCode
运行 F5 报 No module named xxx,大概率是 launch.json 配置不当。默认生成的配置常含 "module": "pytest" 或 "args" 错位,导致启动时找不到入口。
推荐最小可用配置(保存为 .vscode/launch.json):
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"module": "runpy",
"args": ["${file}"],
"console": "integratedTerminal",
"justMyCode": true
}
]
}
关键点:
- 用
runpy模块替代python ${file}命令,绕过路径解析问题 -
justMyCode: true避免调试时跳进标准库或第三方包源码(除非你真需要) - 删掉所有
env字段——环境变量应由解释器所在虚拟环境自动继承,手动设反而易错
真实项目里最常被忽略的,是解释器路径没随项目变更自动更新,以及 launch.json 仍沿用旧模板里的 "module": "django" 或 "module": "flask"——这些只适用于对应框架 CLI 启动,普通脚本必须切回 runpy。










