Я пытаюсь выполнить скрипт Python для некоторого кода, который я написал более года назад. Насколько я помню, когда вы пишете строку pdb.set_trace(), программа останавливает свое выполнение в этой точке и печатает следующую строку, которая будет выполнена. Ввод «n» или «s» продвинет выполнение на строку (и, возможно, перейдет к функции, не слишком актуальной для моей проблемы) И напечатает следующую строку для повторного выполнения.
Теперь у меня есть одна программа «example1.py», и она не печатает следующий оператор для выполнения. Я просто получаю вывод, подобный следующему
./example1.py
> /home/some/example1.py(44)create()
(Pdb) s
> /home/some/example1.py(45)create()
(Pdb) s
--Call--
> /home/some/example1.py(90)parse()
Но когда я пытаюсь сделать то же самое с другой программой на Python, «example2.py», которую я написал совсем недавно, я получаю ожидаемый результат (следующий оператор, который нужно выполнить).
> /home/some/example2.py(86)random_update()
-> DATE_LIMIT=1
(Pdb) n
> /home/some/example2.py(87)random_update()
-> FILE_LIMIT=120
(Pdb) n
> /home/some/example2.py(89)random_update()
-> n_dates=0
Я понятия не имею, что может быть возможной причиной этого. Могут ли операторы импорта мешать выполнению pdb?
ОБНОВЛЕНИЕ: поэтому я установил точку останова трассировки перед переходом в каталог, который находится за пределами моего домашнего каталога. Когда я это делаю, я получаю ожидаемый результат. Я заметил, что владельцем группы этого каталога был root, поэтому я изменил его на своего пользователя. Это не решило мою проблему, но теперь я знаю, что это связано с местом выполнения программы.