【发布时间】:2014-01-11 16:11:42
【问题描述】:
我在那里试用的每个调试器都需要一个源文件来调试。然而 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,并且不删除相关导入。
【问题讨论】:
-
如果有人能找到一种不需要修改程序源和不需要更改工作目录的方法来实现这一点,那就太好了。
标签: python debugging command-line relative-import pudb