我在那里试过的每个调试器都需要调试一个源文件。但是Python并不总是以这种方式工作。如何调试需要用-m执行的python模块?
我有一个模块是__init__.py
和__main__.py
内部文件,其中包括一个文件夹,我通常执行该是这样的:
$ cd /parent/folder
$ python3 -m module_folder --help
如果我不使用-m
,相对导入失败。如果我只是在文件夹传递到pudb
,pdb
等,调试失败:
$ cd /parent/folder
$ python3 -m pdb module_folder
Traceback (most recent call last):
File "/usr/lib64/python3.3/pdb.py", line 1658, in main
pdb._runscript(mainpyfile)
File "/usr/lib64/python3.3/pdb.py", line 1536, in _runscript
with open(filename, "rb") as fp:
IsADirectoryError: [Errno 21] Is a directory: 'module_folder'
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program
> /usr/lib64/python3.3/pdb.py(1536)_runscript()
-> with open(filename, "rb") as fp:
(Pdb)
我怎么能调试吗?最好与pudb
,并且不删除相对的进口。
这将是很好,如果有人可以找到一种方法来实现这一点,不需要修改程序源,也不需要改变工作目录。 –