Найти тему
Властелин машин

Советы отладки в Jupyter от мученика

Оглавление

Чтобы сильно облегчить себе жизнь при программировании на сервере с Jupyter, запомните эти рекомендации по отладке. Рассмотрим несколько кейсов:

  1. пошаговое исполнение программы, состоящей из набора py файлов
  2. отладка участка с произвольной точки останова в блокноте
  3. пошаговое исполнение отдельной функции

Отладка программы

В первом случае удобно запустить сценарий на Python в отдельном блокноте. При этом установить точку останова можно как посредством запуска файла с флагом -d, так и поставив set_trace в нужном месте.

%run -d имя.py

После автоматического входа в отладчик на произвольную строку можно перейти с помощью команд:

b номер_строки
c

Первая команда устанавливает в строчке точку останова, а вторая продолжает исполнение до нее.

Альтернативным способом является разметка исследуемых участков программы строками вида:

import pdb;pdb.set_trace()

и обычный запуск:

%run имя.py

Отладка участка в блокноте

В соответствии с особенностями работы отладчика со стеком вызовов потребуется заключить код в блок if или функцию и перед исследуемой строкой набрать:

import pdb;pdb.set_trace()

а затем запустить ячейку на исполнение

Также можно команды вызова отладчика обернуть в функцию set_trace, которую хранить в одной из верхних ячеек и запускать так:

Отладка функции

Для этого можно воспользоваться следующей функцией:

-2

и вызов производить как в примере ниже:

-3

При работе с отладчиком вам могут пригодится часто используемые команды:

-4

-5