大多数情况下,你只需要让 VS Code 自动生成基础配置,再根据是否需要传参或切换解释器微调 program 和 console 字段即可。
先说结论:launch.json 的核心是指定调试器类型、启动方式和入口文件,新手建议直接使用扩展自动生成的配置模板,再按需修改路径。
- 适合:需要在 VS Code 内断点调试 Python 脚本或模块的场景
- 先准备:确保已安装 Python 扩展并选中了正确的解释器
- 验收:按下 F5 后能停在断点处且变量面板有数据
基础配置示例
如果你不想手动敲配置,可以直接在项目根目录创建 .vscode/launch.json,填入以下最小可用配置:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: 当前文件",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
}
]
}
保存后按 F5 即可尝试调试当前打开的文件。
常用参数详解
理解关键参数的含义和可选值,能避免大部分配置错误:
- type:固定为
python,指定使用 Python 调试适配器。 - request:区分启动方式。
launch表示启动新进程调试,attach表示附加到已运行的进程。 - program:指定入口文件。常用变量:
${file}(当前文件)、${workspaceFolder}/main.py(固定文件)。 - console:指定输出终端。
internalConsole:VS Code 内部调试控制台,不支持 input 输入。integratedTerminal:VS Code 集成终端,支持交互输入,推荐默认使用。externalTerminal:外部系统终端窗口。
- args:命令行参数列表。格式为字符串数组,例如
["`--param1`", "value1"],注意不要包含多余符号。 - env:环境变量配置,格式为键值对对象,例如
{"KEY": "VALUE"}。 - cwd:当前工作目录。涉及相对路径读取文件时,建议显式设置为
${workspaceFolder}。 - justMyCode:默认为
true,只调试用户代码。若需在第三方库中断点,设为false。 - debugOptions:高级调试选项。例如添加
["DebugStdLib"]可调试标准库代码。
复杂场景配置案例
针对需要传参或调试模块的场景,参考以下配置:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: 带参数调试",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/main.py",
"console": "integratedTerminal",
"args": ["`--config`", "dev.json", "`--verbose`"],
"cwd": "${workspaceFolder}"
},
{
"name": "Python: 调试模块",
"type": "python",
"request": "launch",
"module": "package_name.module_name",
"console": "integratedTerminal"
}
]
}
验证与排查
在代码行号左侧点击设置红点断点,按下 F5 启动调试。如果编辑器暂停在高亮行,且底部调试工具栏出现,说明配置生效。观察变量面板是否能查看到当前作用域的变量值,这是判断调试器正常工作的最直接标准。
若无法启动,检查底部“调试控制台”输出的错误信息,常见为路径错误或解释器不可用。
常见坑
- 解释器不匹配:确保右下角状态栏选择的 Python 解释器是你项目依赖所在的环境,否则调试时可能找不到包。
- 终端交互失败:如果脚本需要 input 输入,console 必须设为 integratedTerminal 或 externalTerminal,internalConsole 不支持交互输入。
- 路径解析错误:避免硬编码绝对路径,多使用 ${workspaceFolder} 等变量,确保配置在不同机器间可移植。
- 第三方库断点无效:默认 justMyCode 为 true,若需调试库代码,需显式关闭该选项。