Чтобы сильно облегчить себе жизнь при программировании на сервере с Jupyter, запомните эти рекомендации по отладке. Рассмотрим несколько кейсов:
- пошаговое исполнение программы, состоящей из набора py файлов
- отладка участка с произвольной точки останова в блокноте
- пошаговое исполнение отдельной функции
Отладка программы
В первом случае удобно запустить сценарий на Python в отдельном блокноте. При этом установить точку останова можно как посредством запуска файла с флагом -d, так и поставив set_trace в нужном месте.
%run -d имя.py
После автоматического входа в отладчик на произвольную строку можно перейти с помощью команд:
b номер_строки
c
Первая команда устанавливает в строчке точку останова, а вторая продолжает исполнение до нее.
Альтернативным способом является разметка исследуемых участков программы строками вида:
import pdb;pdb.set_trace()
и обычный запуск:
%run имя.py
Отладка участка в блокноте
В соответствии с особенностями работы отладчика со стеком вызовов потребуется заключить код в блок if или функцию и перед исследуемой строкой набрать:
import pdb;pdb.set_trace()
а затем запустить ячейку на исполнение
Также можно команды вызова отладчика обернуть в функцию set_trace, которую хранить в одной из верхних ячеек и запускать так:
Отладка функции
Для этого можно воспользоваться следующей функцией:
и вызов производить как в примере ниже: