python 脚本上的 Python pdb 作为包运行

标签 python python-module pdb

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

python -m mymod.client

为了处理“mymod/client.py”中的相对导入。我如何使用 pdb - python 调试器运行它。以下不起作用:

python -m pdb mymod.client

它产生错误:

Error: mymod.client does not exist

编辑#1(解决问题可能的口是心非)

我的问题不是关于同时运行两个模块 python,而是关于如何在 python 脚本上使用 pdb,该脚本内部有相对导入,通常通过使用“python -m. “

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

总而言之,我不关心如何我运行脚本,只要我能让它与 pdb 一起工作,而不会过多地改变它的内部结构(相对导入等)。

最佳答案

认为我有一个解决方案。

像这样运行它:

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

这会将其作为脚本运行,但不会将其视为包。 在 client.py 的顶部,第一行应该是:

import mymod

这将加载包本身。 我还在玩这个,但到目前为止它似乎有效。

关于python 脚本上的 Python pdb 作为包运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36227688/

相关文章:

python - 使用 Raspbian 操作系统在 Raspberry Pi 2 Model B 上安装 OpenCV

python - 从具有相同名称的脚本导入已安装的包引发 "AttributeError: module has no attribute"或 ImportError 或 NameError

python - 定义顺序在模块命名空间中可用吗?

entity-framework - 如何获取 EntityFramework NuGet 包的 PDB 文件?

python - 我可以从 pdb 中引发异常吗? (用于调试)

python - 如何检查输入是否超出字典列表的范围?

python - 检查输入是否为整数

python - 在 Pandas 数据框中将索引从一列移动到另一列

python - 任务管理器模块

python - 暂时进入IPython中的调试器