Sta*_*ish 6 visual-studio-code vscode-tasks vscode-debugger
我写了一个shell脚本,它会在启动python程序之前先做一些配置。(例如,下载数据,pip安装一些包,设置环境变量等。然后在python程序内部完成繁重的工作(例如,深度学习训练任务)。现在我想调试python程序,(我'如果我必须同时调试 shell 和 python,我可以接受)。我应该如何修改文件launch.json
来完成此操作?我应该添加一些 task.json 项吗?我还不熟悉该任务主题。
目前,我正在以一种丑陋的解决方法来做这件事。我把shell脚本中的语句注释掉python train.py
,先运行shell脚本。python train.py
然后在调试模式下单独运行 python scipt 。我认为这目前适用于我的简单情况,但如果在 shell 脚本内部,我们正在做一些诸如临时修改环境变量之类的事情,我无法将这两个步骤分开。所以我想知道是否有更直接、更体面的方法。非常感激。
小智 1
根据此处的 VSCode 文档https://code.visualstudio.com/docs/python/debugging
将 debugpy 安装到您的环境中,并在入口点 python 脚本中添加“等待客户端”代码。
pip install debugpy
import debugpy
debugpy.listen(5678) # 5678 is port
print("Waiting for debugger attach")
debugpy.wait_for_client()
debugpy.breakpoint()
print('break on this line')
Run Code Online (Sandbox Code Playgroud)
然后从终端启动 bash sciprt(使用 adim 或 sudo 权限,否则,可能会出现套接字权限错误),并等待显示等待消息。
或者将其添加到您的 python arg 中
python -m debugpy --listen 5678 --wait-for-client XXX.py
Run Code Online (Sandbox Code Playgroud)
将“Attach to python”配置添加到 VSCode 调试 launch.json 中,如下所示
python -m debugpy --listen 5678 --wait-for-client XXX.py
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1036 次 |
最近记录: |