Вы можете перейти в сеанс отладки IPython, вставив следующий код в нужную точку:
import sys, IPython
IPython.Shell.IPShell(argv=[])
IPython.Debugger.Pdb(IPython.ipapi.get().options.colors).set_trace(sys._getframe())
Не совсем то, что вы, похоже, ищете, но для меня это работает очень хорошо. Это также позволяет легко иметь сложные условные точки останова. Существует несколько других способов запуска сеанса отладки IPython из исходного файла, который плавает в Интернете, но, по моему опыту, в любом случае, он является наиболее надежным с точки зрения загрузки правильных цветов, правильного завершения вкладок и т. Д.
После начала сеанса отладки вы можете установить дополнительные точки останова с помощью команды break
:
ipdb> break test.py:11
Breakpoint 1 at /tmp/test.py:11
ipdb> b my_function
Breakpoint 2 at /tmp/test.py:5
Чтобы его было легко вставить, вы можете установить комбинацию макросов / клавиш в вашем редакторе. Я также пользователь Vim, и у меня есть следующая таблица ключей в моем vimrc
:
nmap <C-P><C-D> oimport sys, IPython<CR>IPython.Shell.IPShell(argv=[])<CR>IPython.Debugger.Pdb(IPython.ipapi.get().options.colors).set_trace(sys._getframe())<ESC>:w<CR>
В обычном режиме, нажав Ctrl-P, затем Ctrl-D вставляет код отладки после текущей строки с правильным отступом и затем сохраняет файл.