在开发Python包时,使用-m
选项以快速测试运行包中的模块脚本非常方便。例如,对于名为somepackage
且内部有模块somemodule.py
的包,调用:
python -m somepackage.somemodule
在存放somepackage
的目录中运行somemodule.py
,就好像子模块是__main__
一样。如果包使用显式相对导入(如此处所述),使用这种调用语法尤其重要。
同样地,使用-m
选项调试脚本也非常方便,如下:
python -m pdb somescript.py
有没有办法同时做到这两个?也就是说,我能否像调用脚本一样调用模块,并同时进入调试器?我知道我可以进入代码本身并在想要中断的位置插入import pdb; pdb.set_trace()
,但我正在尝试避免这样做。
python -m pdb -m path.to.module
在 Python 3.9.5 中对我来说运行得非常完美。 - jlhasson