Я использую отладчик ipdb следующим образом:
ipython --pdb bugged.py
в файле bugged.py :
import numpy as np
a = np.array([0, 1, 2])
print(a[5])
a = 2 + a
print(a)
Что происходит тогда, это то, что отладчик начинает работать с ошибочной линии; это ожидаемое поведение:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
/home/jrlab/Desktop/Current/debug_ipython/bugged.py in <module>()
2
3 a = np.array([0, 1, 2])
----> 4 print(a[5])
5 a = 2 + a
6 print(a)
IndexError: index 5 is out of bounds for axis 0 with size 3
> /home/jrlab/Desktop/Current/debug_ipython/bugged.py(4)<module>()
2
3 a = np.array([0, 1, 2])
----> 4 print(a[5])
5 a = 2 + a
6 print(a)
ipdb> n
~/Desktop/Current/debug_ipython>
Но на самом деле я хотел бы продолжить выполнение следующей инструкции, когда я нажимаю n (или любую другую команду), то есть, что я могу продолжить выполнение сценария после того, как исправлю вручную ! дает команду на выполнение ошибочной строки.
Есть ли способ сделать это?
редактирует
1: Мне нужно такое поведение в случае, если запуск сценария занимает много времени; Я хотел бы иметь возможность возобновить выполнение, когда я исправил небольшую ошибку в середине скрипта, без необходимости повторного запуска с самого начала.
2: Я знаю, что это за ошибка, и я знаю, как ее исправить. Глючный код показан только для иллюстрации желаемого поведения (т. Е. Кода возобновления после печати (a [5]), если я хочу.