debugging 如何在直接运行包时使用python pdb?

hvvq6cgz  于 2023-08-06  发布在  Python
关注(0)|答案(2)|浏览(92)

我有一个嵌套的Python包结构,我可以安装和运行它的不同部分。例如,要启动Tornado/Flask Web服务器,我执行以下命令:

python3 -m mytool.web -c myconfig.yaml

字符串
其中Web包同时包含__init__.py__main__.py。我在其他几个组件中使用了这个结构,所以一旦安装了包,它就很容易运行,我在容器中运行。
我的问题是当我试图用PDB调试时。由于PDB的启动方式与我启动包组件的方式类似,即python3 -m pdb /path/to/debuging/file.py,我不知道如何使用pdb工具调试其他直接作为包运行的东西。
python3 -m pdb mytool.web -c myconfig.yaml不工作。
有什么建议吗?

jk9hmnmh

jk9hmnmh1#

第一个月
此表单也适用于不使用-m的常规脚本调用(您需要两种表单中的--来使ipython停止使用args并将它们传递给模块/脚本)

e3bfsja2

e3bfsja22#

python -m pdb -m mypackage <myoptions>

字符串
在您的案例中:

python -m pdb -m mytool.web -c myconfig.yaml


虽然iPython是一个很好的工具,但调用原始Python解释器而不是iPython会保留原始命令行,因为它需要python -m pdb -m前缀。

相关问题