Есть ли способ добиться того же, что и в python -mpdb из скрипта? - PullRequest
1 голос
/ 25 февраля 2010

Помимо оборачивания всего вашего кода в try except, есть ли способ достичь того же, что и запуск вашего скрипта, например python -mpdb script? Я хотел бы видеть, что пошло не так, когда возникает исключение.

Ответы [ 3 ]

3 голосов
/ 25 февраля 2010

Если вы не хотите изменять исходный код, вы можете запустить его из ipython - улучшенной интерактивной оболочки Python.

например. запустите ipython, затем выполните %pdb on, чтобы включить посмертную отладку. %run scriptname запустит сценарий и автоматически войдет в отладчик с любыми неперехваченными исключениями.

В качестве альтернативы %run -d scriptname запустит скрипт в отладчике.

1 голос
/ 26 февраля 2010
python -i script

оставит вас в интерактивной оболочке, когда возникнет исключение; то

import pdb
pdb.pm()

поместит вас в посмертный отладчик, чтобы вы могли выполнять все обычные операции отладки.

Это должно работать до тех пор, пока ваш скрипт не вызывает sys.exit. (Какие сценарии никогда не следует делать, потому что это нарушает эту очень полезную технику! А также усложняет написание тестов.)

0 голосов
/ 25 февраля 2010

import pdb; pdb.set_trace()

Источник: http://docs.python.org/library/pdb.html

...