Интерактивная отладка в ноутбуке IPython (Jupyter)
для отладки моего кода python я использую ipdb
библиотека, и использовать set_trace()
команда для размещения точки останова. Как только код достигает там, я получаю интерактивную оболочку с ipdb>
подскажите, что я могу исследовать локальные переменные с автозаполнением вкладки.
в ноутбуке IPython (Jupyter), однако, ipdb.set_trace()
не работает. Как предложено этим сообщением:
использование ipdb для отладки кода python в одной ячейке (jupyter или Ipython)
Я использую следующие альтернатива интерактивной отладки:
from IPython.core.debugger import Tracer
Tracer()() #this one triggers the debugger
это дает мне ipdb>
приглашение, но автозаполнение вкладки недоступно. Есть ли в любом случае, чтобы включить автозаполнение для интерактивной отладки с помощью IPython notebook? Это чрезвычайно полезно, особенно когда у вас много переменных с длинными именами.
1 ответов
в Python 3.7 вы можете использовать точка останова () функции
эта функция сбрасывает вас в отладчик на сайте вызова. В частности, он вызывает sys.breakpointhook (), передача args и kws сквозной. По умолчанию, системы.вызовы breakpointhook() распределительная плата.set_trace () не ожидает аргументов. В этом случае это чисто функция удобства, поэтому вам не нужно явно импортировать pdb или введите столько кода, чтобы ввести отладчик. Однако, системный.breakpointhook() можно установить на другую функцию, и breakpoint () будет автоматически вызовите это, позволяя вам перейти в отладчик выбора.