私が試したすべてのデバッガーは、ソース ファイルがデバッグされることを期待しています。ただし、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
、相対インポートを削除せずに。