Python脚本上的Python pdb作为packag运行

2024-04-20 09:49:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python程序,通常作为包的一部分运行:

python -m mymod.client

为了处理“mymod”内部的相关进口/客户端.py“我如何使用pdb运行这个-python调试器。以下操作无效:

^{pr2}$

它会产生错误:

Error: mymod.client does not exist

编辑#1(解决问题的重复性)

我的问题并不是关于同时运行两个模块python,而是关于如何在一个python脚本上使用pdb,这个脚本中有相对的导入,通常通过运行“python-m”来处理

重申一下,我的问题可能是,如何在这样的脚本上使用pdb,而不必为了让它与pdb一起运行而更改脚本本身(即:尽可能保留脚本内部的相对导入)。这不应该是可能的吗,或者如果我想使用pdb,我是不是被迫以某种方式重构?如果是这样的话,对脚本结构的最小更改是什么,我必须引入这些更改来允许我利用pdb。在

总之,我不在乎如何运行脚本,只要我能让它在pdb中工作,而不必过多地改变它的内部结构(相对导入等)。在


Tags: py程序脚本client编辑客户端错误not
2条回答

这是不可能的。虽然在文档中没有说明,但是Python不会通过-m命令行选项解析两个模块。在

我想我有个解决办法。在

这样运行:

python -m pdb path/mymod/client.py arg1 arg2

它将作为脚本运行,但不会将其视为包。 在顶部客户端.py,第一行应为:

^{pr2}$

这样就可以加载包本身了。 我还在玩这个,但到目前为止似乎还管用。在

相关问题 更多 >