Почему pdb.set_trace () не переводит go на следующую строку, а вместо этого входит в interactiveshell.py? - PullRequest
0 голосов
/ 31 марта 2020

Я использую pdb.set_trace () + n для перехода по каждой строке моего кода. В большинстве случаев это работает. Теперь у меня есть новый код, и я настроил трассировку до a для l oop. Когда я нажимаю 'n', вместо того, чтобы идти в For l oop, он попадает в какой-то файл interactiveshell.py:

for item in init_times:
(Pdb) n
> c:\anaconda\lib\site-packages\ipython\core\interactiveshell.py(3329)run_code()
-> sys.excepthook = old_excepthook

Как мне выйти из этого и возобновить отладку кода построчно ? Требуется вечность, чтобы пройти через эту интерактивную оболочку, и я понятия не имею, что это такое или что мне нужно отлаживать в этом.

Это снимок кода, в котором у меня есть трассировка перед оператором If:

for item in init_times:
    pdb.set_trace()
    if item[0]=='From Seconds':
        start_0.append(1)
    elif item[0]=='To Seconds':
        end_last.append(1)
if len(start_0)>0 and len(end_last)>0:
    full_range = 1
    print('full range')
elif len(start_0)>0 and not len(end_last)>0:
    begin_range_at_0 = 1
    print('data begins at 0')
elif not len(start_0)>0 and len(end_last)>0:
    end_range_at_end = 1
    print('data ends at last row')
else:
    min_start = int(min(t1_comp_init[0], t1_stat_init[0]))    # min_start variable is used in statistics() and comparisons() when both 
    max_end = int(max(t1_comp_init[0], t2_stat_init[0])) 
...