VS Code 调试 Python 只需安装 Microsoft 官方 Python 插件(ms-python.python),正确选择解释器并配置 launch.json 的 program(脚本)或 module(模块)模式,即可正常调试;其他插件非必需,合集包易冲突,选错解释器或混用配置会导致断点失效、导入错误等问题。

VS Code 调试 Python 不需要额外装第三方插件,只要装对官方插件、选对解释器、launch.json 里别写错 module 或 file 类型,基本就能跑起来。
必须安装的插件只有这一个
在扩展市场搜 Python,认准作者是 Microsoft、ID 是 ms-python.python 的那个。它自带调试器(ptvsd 已弃用,现在是 debugpy)、语言服务器、测试集成等。其他标着“Python Debugger”“Pylance”的插件,要么是它的一部分,要么是可选增强(比如 Pylance 提供更好补全),但不是调试必需。
常见错误现象:
- 装了“Python for VS Code”“Python Extension Pack”这类合集包——容易和官方插件冲突,删掉
- 只装了
Pylance或Python Test Explorer——没装ms-python.python,调试按钮灰色不可点
调试前必须手动指定 Python 解释器路径
快捷键 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Python: Select Interpreter 回车,从列表选你项目实际用的环境。不能靠插件自动猜——尤其当你有 conda、venv、pyenv、系统 Python 多个共存时,它大概率选错。
立即学习“Python免费学习笔记(深入)”;
验证是否生效:
- 状态栏左下角能看到类似
Python 3.11.5 ('venv': venv)的提示 - 打开终端(
Ctrl+`),运行which python(macOS/Linux)或where python(Windows),输出路径应和你在上一步选中的一致
如果选错,launch.json 里所有配置都白搭,断点不命中、ModuleNotFoundError 都会来。
launch.json 的两种常用配置别混用
.vscode/launch.json 是调试入口,核心就两个模式:运行脚本文件 or 启动模块。别把它们的字段交叉填。
✅ 脚本模式(适合 main.py 这类直接运行的文件):
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"module": "", // ← 删掉这行或留空
"program": "${file}", // ← 必须用 program,指向具体 .py 文件
"console": "integratedTerminal"
}
]
}
✅ 模块模式(适合 pip install -e . 安装的包,或想用 python -m mypackage.cli 启动):
{
"name": "Python: Module",
"type": "python",
"request": "launch",
"module": "mypackage.cli", // ← 必须用 module,值是 import 路径
"program": "", // ← 删掉这行或留空
"console": "integratedTerminal"
}
常见坑:
- 同时写
program和module—— VS Code 会静默忽略module,按脚本跑,结果报ImportError - 模块名拼错,比如写成
my_package.cli但实际包名是mypackage—— 报No module named 'my_package' - 没加
"console": "integratedTerminal"—— 输入input()时卡死,光标不动
断点不触发?先检查这三个地方
不是代码问题,大概率是环境链路断了:
-
launch.json里的"type": "python"写成"python3"或"debugpy"—— VS Code 不识别,调试直接失败 - Python 解释器里没装
debugpy(新版插件通常自动装,但离线环境或某些 conda 环境可能缺)—— 运行python -m pip install debugpy补上 - 项目根目录有
__pycache__或旧的.vscode/settings.json干扰——临时重命名整个.vscode文件夹,重新生成launch.json
真实项目里最常被忽略的是:调试配置写在工作区 .code-workspace 里,但当前打开的是文件夹视图,VS Code 根本不读那个配置。


















