PyCharm: как выполнить посмертную отладку в интерактивной консоли ipython?


Я только начал использовать Nice PyCharm community edition IDE, и не могу сделать простую вещь, которая является частью моего обычного рабочего процесса Python.

Я запустил консоль ipython и могу импортировать свои модули и интерактивно запускать команды. В PyCharm, когда я выполняю вызов функции, он выполняется так, как будто он выполняется в отдельном процессе. Приглашение консоли можно использовать даже до завершения выполнения. Запуск ipython в оболочке за пределами PyCharm, когда происходит исключение, я могу запустить функция pdb post mortem и исследовать проблему:

import pdb;pdb.pm()

Я хочу сделать то же самое в PyCharm: начать посмертную отладку, когда происходит исключение, пока я интерактивно исследую проблему.

2 11

2 ответа:

Учитывая, что вы используете PyCharm, почему бы не использовать встроенный отладчик? Существует достаточно документации о том, как вы можете использовать его для установки собственных точек останова, пошагового просмотра стека, настройки параметров отладчика и т. д.

Специально для вашего случая использования, если вы хотите прервать на исключениях -- вы можете использовать Ctrl + Shift + F8, чтобы открыть экран конфигурации точек останова. Точка прерывания Затем вы можете проверить, чтобы сломать на любое исключение для исключения Python Точка останова . Это даст вам доступ к исключению и всему стеку (в разделеFrames ), контексту, переменным и т. д. когда что-то случается.

Из-за отсутствия ответов, я думаю, что это невозможно сделать. Если кто-то опубликует ответ здесь, я приму его.

Кстати, если у вас установленJupyter , он даст вам замечательный терминал, если вы запустите jupyter qtconsole. Работает очень хорошо даже в Windows. Волшебная команда %debug автоматически запустит отладчик.