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