Пошаговая отладка с помощью IPython

Из того, что я прочитал, есть два способа отладки кода в Python:

С традиционным отладчиком, таким какpdb или жеipdb, Это поддерживает такие команды, какc за ,continuen за ,step-overs заstep-into и т.д.), но вы нене имеет прямого доступа к оболочке IPython, которая может быть чрезвычайно полезна для проверки объектов.

С помощьюIPython отвложения оболочка IPython в вашем коде. Ты можешь сделатьfrom ipython import embed, а затем использоватьembed() в вашем коде. Когда ваша программа / скрипт попадает вembed() заявление, вы попали в оболочку IPython. Это позволяет полностью проверять объекты и тестировать код Python, используя все возможности IPython. Однако при использованииembed() ты не можешьшаг за шагом через код больше с удобными сочетаниями клавиш.

Есть ли способ объединить лучшее из обоих миров? То есть

Быть способнымшаг за шагом через ваш код с помощью удобных сочетаний клавиш pdb / ipdb.На любом таком шаге (например, по заданному утверждению) иметь доступ к полноценномуОболочка IPython.Отладка IPythonкак в MATLAB:

Пример такого типаулучшенная отладка " можно найти в MATLAB, где пользовательвсегда имеет полный доступ к движку / оболочке MATLAB, и она все еще можетшаг за шагом с помощью ее кода, определения условных точек останова и т. д. Из того, что я обсуждал с другими пользователями, эта функция отладки больше всего упускается при переходе с MATLAB на IPython.

Отладка IPython в Emacs и других редакторах:

Я неЯ не хочу делать вопрос слишком конкретным, но я работаю в основном в Emacs, поэтому мне интересно, есть ли способ привнести в него эту функциональность.в идеалеEmacs (или редактор) позволит программисту устанавливать точки останова в любом месте кода и связываться с интерпретатором или отладчиком, чтобы он останавливался в выбранном вами месте, и приводил к полному интерпретатору IPython в этом месте.

Ответы на вопрос(13)

Ваш ответ на вопрос