如何在使用 bazel 构建的项目中使用 vscode python 调试器?
How to use the vscode python debugger with a project built with bazel?
我想调试一个 python 文件,它有一些只出现在 bazel 的 runfiles
中的依赖项。如何使用 vscode 调试器调试 bazel 构建?
正如某位名人所说,"Yes, we can"。
您需要使用 "ptvsd" python 包。
一次性设置
- 在 Bazel 中添加 "ptvsd" 作为 Python 依赖项
- 在 VS Code 中,在您的
launch.json
文件中,添加以下配置:
{
"name": "Python: Attach",
"type": "python",
"request": "attach",
"port": 5724,
"host": "localhost"
},
调试
当您要调试特定文件时:
- 在要调试的Python文件中,添加以下行:
import ptvsd
ptvsd.enable_attach(address=('localhost', 5724), redirect_output=True)
print('Now is a good time to attach your debugger: Run: Python: Attach')
ptvsd.wait_for_attach()
- 运行 像往常一样在这个文件上使用 Bazel(例如
bazel run :server
)
- 执行将在 "Now is a good time to attach your debugger: Run: Python: Attach"
处停止
- 在 VS Code 中,单击我们之前设置的 "Python: Attach" 调试选项:
- 就是这样!
随意更改端口,在此示例中为 5724。
ptvsd
是 deprecated, replaced by debugpy
.
用法与已接受的答案相同,只是 Python 文件的代码片段已更改:
import debugpy
debugpy.listen(5678)
debugpy.wait_for_client() # blocks execution until client is attached
我想调试一个 python 文件,它有一些只出现在 bazel 的 runfiles
中的依赖项。如何使用 vscode 调试器调试 bazel 构建?
正如某位名人所说,"Yes, we can"。
您需要使用 "ptvsd" python 包。
一次性设置
- 在 Bazel 中添加 "ptvsd" 作为 Python 依赖项
- 在 VS Code 中,在您的
launch.json
文件中,添加以下配置:
{
"name": "Python: Attach",
"type": "python",
"request": "attach",
"port": 5724,
"host": "localhost"
},
调试
当您要调试特定文件时:
- 在要调试的Python文件中,添加以下行:
import ptvsd
ptvsd.enable_attach(address=('localhost', 5724), redirect_output=True)
print('Now is a good time to attach your debugger: Run: Python: Attach')
ptvsd.wait_for_attach()
- 运行 像往常一样在这个文件上使用 Bazel(例如
bazel run :server
) - 执行将在 "Now is a good time to attach your debugger: Run: Python: Attach" 处停止
- 在 VS Code 中,单击我们之前设置的 "Python: Attach" 调试选项:
- 就是这样!
随意更改端口,在此示例中为 5724。
ptvsd
是 deprecated, replaced by debugpy
.
用法与已接受的答案相同,只是 Python 文件的代码片段已更改:
import debugpy
debugpy.listen(5678)
debugpy.wait_for_client() # blocks execution until client is attached