ipython -pylab debugging: Могу ли я остановить выполнение на определенной строке и перейти в оболочку?

При написании кода на Python (в основном numpy + matplotlib ) я обычно просто введите код в vim и запустите программу для проверки:

python2 foo.py

Иногда, когда этого недостаточно и мне нужно более тщательно изучить проблему, я просто запускаю программа в ipython: ipython -pylab foo.py , а затем проверьте переменные, проверьте некоторые команды и так далее. Мне нравится ipython из-за завершения табуляции и доступности команд bash .

Это сработало для меня достаточно хорошо, но теперь мои программы стали больше и включают в себя множество подпрограмм (в несколько файлов). Подход ipython больше не работает, потому что он всегда запускает полный код до конца foo.py (когда он попадает в оболочку pylab ). Вместо этого я хотел бы остановить выполнение в заданной строке подпрограммы (может быть в другом файле) и проверить там переменные. Т.е. установить точку останова, в которой срабатывает оболочка пилы.

Есть ли простой способ адаптировать мой ipython способ работы? Например, остановитесь на строке в bar.py

ipython -pylab --stop-at bar.py:423 foo.py

или остановитесь на имени подпрограммы в bar.py

ipython -pylab --stop-at bar.py:subroutine-name foo.py
5
задан Foad 11 March 2019 в 14:26
поделиться