Quando si sviluppa un pacchetto Python, è molto conveniente utilizzare l'opzione per eseguire moduli all'interno del pacchetto come script per test rapidi. Ad esempio, per somepackage
con modulo somemodule.py
suo interno, invocandoAvvia il debugger Python mentre esegue contemporaneamente il modulo come script
python -m somepackage.somemodule
dalla directory in cui risiede somepackage
verranno eseguiti somemodule.py
come se fosse sottomodulo __main__
. L'utilizzo di questa sintassi di chiamata è particolarmente importante se il pacchetto utilizza importazioni relative esplicite come descritto in here.
Allo stesso modo, è anche comodo da usare l'opzione -m
per eseguire il debug di uno script, come in
python -m pdb somescript.py
Esiste un modo per fare entrambe le cose allo stesso tempo? Cioè, posso chiamare un modulo come se fosse uno script e contemporaneamente lanciarlo nel debugger? Mi rendo conto che posso inserire il codice stesso e inserire import pdb; pdb.set_trace()
dove voglio rompere, ma sto cercando di evitarlo.
pdb.run ci si aspetta una stringa, non un callable. 'python -c" importa runpy; importa pdb; pdb.run (\ "runpy.run_module ('somepackage.somemodule', run_name = '__ main __') \") "' funziona altrettanto bene, ma è più ingombrante – petre