Магическая функция отладки в консоли ipython

У меня есть файл с именем foo.py. В этом файле у меня есть несколько функций, и я хотел бы отладить одну из них, называемую foo.bar устанавливая точку останова, но не кодируя ее жестко set_trace, Я работаю в консоли IPython, и я знаю, что есть %debug магическая функция, которая может быть использована для этой цели с помощью синтаксиса:

%debug [--breakpoint FILE:LINE]

Так что я стараюсь

%debug --breakpoint foo.py:10

установить точку останова в строке 10. Однако, как мне фактически выполнить код, чтобы IPython распознал точку останова? дела

import foo
foo.bar()

не работает, так как точка останова просто пропускается.

1 ответ

Решение

Способ сделать это:

from foo import bar
%debug --breakpoint /path/to/foo.py:10 bar()

Это будет импортировать bar в пространство имен и запустите его с точкой останова в строке 10 модуля.

Другие вопросы по тегам