Podczas opracowywania pakietu Python bardzo wygodne jest użycie opcji -m
do uruchamiania modułów wewnątrz pakietu jako skrypty do szybkiego testowania. Na przykład, dla somepackage
z modułem somemodule.py
wewnątrz niego powołującUruchomienie debuggera Python przy jednoczesnym wykonywaniu modułu jako skryptu
python -m somepackage.somemodule
z katalogu, w którym zamieszkuje somepackage
będzie działać somemodule.py
jakby modułem były __main__
. Używanie tej składni wywołania jest szczególnie ważne, jeśli pakiet korzysta z bezpośrednich importów względnych, jak opisano w here.
Podobnie jest także wygodny w użyciu opcję -m
debugowanie skryptu, tak jak w
python -m pdb somescript.py
Czy istnieje jakiś sposób, aby zrobić zarówno w tym samym czasie? To znaczy, czy mogę wywołać moduł tak, jakby był skryptem i jednocześnie uruchamiać w debugerze? Zdaję sobie sprawę, że mogę przejść do samego kodu i wstawić import pdb; pdb.set_trace()
, gdzie chcę przerwać, ale staram się tego uniknąć.
pdb.run spodziewałbym ciąg, a nie wpłacone. 'python -c" importuj runpy; importuj pdb; pdb.run (\ "runpy.run_module (" somepackage.somemodule ", run_name = '__ main __') \") "' działa równie dobrze, ale jest bardziej uciążliwy – petre