跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

VSCode调试Python代码:断点设置与launch.json配置详解

断点不生效主因是launch.json配置错误,尤其是type、program、cwd字段与实际运行方式不匹配,或Python解释器未正确选择;需检查justMyCode设置、入口结构(program/module)、工作目录及调试器扩展是否启用。 断点不生效,八成不是你点错了位置,而是
launch.json
里某个关键字段和你实际运行方式对不上——尤其是
type
、
program
或
cwd
配错了,或者根本没选对 Python 解释器。 断点灰色、点击无效、F5直接跑完?先查
justMyCode
和入口结构 VSCode 默认只调试“你的代码”,但前提是它得认出哪部分是“你的”。如果脚本没写
if __name__ == "__main__":
,或你用
python -m mypackage
启动,而
launch.json
却配了
"program": "${file}"
,断点大概率被过滤掉。
"justMyCode": false
是最快验证手段:加到配置里,重启调试。能停住就说明是入口识别问题 长期方案:统一用标准入口结构,或改用
"module": "mypackage"
+
"args"
,别硬塞命令行到
program
注意:
"justMyCode": false
会进入
site-packages
,调试变慢,仅用于排查,别留着上线
program
和
module
到底怎么选?看你是怎么在终端里跑的 VSCode 不读你心里想的命令,它只按
launch.json
字面执行。你在终端敲
python src/app.py
,就得配
"program": "${workspaceFolder}/src/app.py"
;敲
python -m flask run
,就得配
"module": "flask"
+
"args": ["run"]
。
"program"
:对应直接执行脚本,路径必须真实存在,且
cwd
要匹配导入逻辑(比如
from utils import helper
要求
utils/
在
sys.path
里)
"module"
:对应
python -m xxx
,模块名必须可 import,建议配合
pip install -e .
安装本地包 常见翻车:
"program": "-m http.server"
—— 这会被当成文件名去找,报
File not found
;正确写法是
"module": "http.server"
cwd
配错,
ImportError
和
FileNotFoundError
就跟着来了 Python 的
import
和
open("config.yaml")
都依赖当前工作目录。VSCode 默认以工作区根目录为
cwd
,但你的代码可能期望在
src/
下运行。 php版微信js-sdk支付接口类 php版微信js-sdk支付接口类 下载 立即学习 “ Python免费学习笔记(深入) ”; 验证方法:在代码开头加
import os; print(os.getcwd())
,对比终端里
cd src && python app.py
的实际路径 推荐写法:
"cwd": "${workspaceFolder}/src"
,而不是靠
"program": "./src/app.py"
猜路径 漏掉
"console": "integratedTerminal"
?像
http.server
这种要交互的模块会卡死不动 修改
launch.json
后断点还是不生效?别跳过这三步 配置改了≠立刻生效。VSCode 的调试状态有缓存,环境也容易“假连接”。 看左下角 Python 解释器路径:必须和你终端里
which python
或
where python
一致,且指向虚拟环境内的解释器(如
./venv/bin/python
) 确认已安装官方
ms-python.python
扩展,Pylance 不管调试 改完
launch.json
必须重启调试会话(Stop → F5),热重载不生效 最常被忽略的其实是
cwd
和解释器路径的实时一致性——它们不像代码能 git diff 出来,一错就是静默失败。

相关文章