debugpy代码嵌入远程调试正常,命令行启动调试无响应问题求助
日志获取方法
debugpy 服务端(被调试程序侧)
启动命令中添加--log-to <本地目录路径>参数即可输出debugpy服务端的全量日志,包含端口监听、客户端连接、代码加载、异常抛出的全流程信息。
修改后的启动命令示例:
python3 -m debugpy --log-to ./debugpy_server_logs --listen 0.0.0.0:5678 --wait-for-client bazel-bin/path/to/my_test
日志会自动生成在你指定的./debugpy_server_logs目录下。
VS Code 调试端
- 打开VS Code命令面板(Windows/Linux按
Ctrl+Shift+P,macOS按Cmd+Shift+P),输入「Open User Settings (JSON)」,在配置文件中添加如下字段开启debugpy日志输出:
"debugpy.logToFile": true, "debugpy.logPath": "/path/to/vscode_debugpy_logs"
- 也可以在你的调试配置中增加
logToFile和redirectOutput字段,输出单次调试的详细交互信息,修改后的配置示例:
{ "version": "0.2.0", "configurations": [ { "name": "Python: Remote Attach", "type": "python", "request": "attach", "host": "127.0.0.1", "port": 5678, "logToFile": true, "redirectOutput": true, "justMyCode": false } ] }
- 额外的调试报错可以在VS Code顶部菜单栏选择「帮助」->「切换开发人员工具」,在「控制台」标签页查看Python调试插件的运行错误。
当前场景常见根因
你当前遇到的无响应问题大概率和bazel构建产物的特性有关:bazel-bin下的Python可执行文件本质是shell包装脚本,不是纯Python源码文件,直接作为参数传给python3 -m debugpy时,debugpy无法识别脚本内容,会直接运行异常退出。
不需要修改源码的正确启动方式如下:
bazel run --run_under="python3 -m debugpy --listen 0.0.0.0:5678 --wait-for-client" //path/to:my_test
用--run_under参数让bazel在启动实际Python进程时自动挂载debugpy,即可正常调试。
内容的提问来源于stack exchange,提问作者Juan Enrique Muñoz Zolotoochin
相关产品推荐
相关产品推荐

