如何无需修改源码为Bazel Python项目集成VSCode调试器?
Bazel单仓Python目标VSCode调试问题(无需修改源码)
我维护一个基于Bazel构建的单仓(monorepo)Python项目,希望不修改源码,仅通过debugpy模块实现VSCode调试器的集成。
尝试的无效方案
我用--run_under参数启动debugpy代理,命令如下:
bazel run --run_under="debugpy --listen 0.0.0.0:5678 --wait-for-client" //path/to/target/tests:dummy_tests
对应的VSCode launch.json配置为:
{ "configurations": [ { "type": "debugpy", "request": "attach", "name": "Attach to a running debugpy", "debugServer": 5678 } ] }
执行后,进程确实会等待我附加调试器,但调试器连接后,测试直接运行完毕,设置的断点完全没有触发。
有效的对比方案(需修改源码)
如果在测试代码中手动添加debugpy初始化代码:
import debugpy debugpy.listen(5678) debugpy.wait_for_client()
再直接运行Bazel目标:
bazel run //path/to/target/tests:dummy_tests
此时断点能正常命中,调试功能完全正常。
内容的提问来源于stack exchange,提问作者Michael Becker
相关产品推荐
相关产品推荐

