2012-06-25 4 views
9

Я запустил программу python со многими вложенными циклами, и программа займет несколько дней. Я просто понял, что одно из значений циклов неверно и делает бесконечный цикл.изменить запущенную программу python

Я не хочу перезапускать программу с нуля, есть ли способ прервать текущую программу и изменить диапазон циклов, чтобы она работала правильно, а также если она была захвачена бесконечным циклом, чтобы сломать его?

Большое спасибо за помощь.

+2

См. [Здесь] (http://wiki.python.org/moin/DebuggingWithGdb) для некоторых советов. – georg

ответ

1

Если программа время от времени сохраняет свое состояние или результаты, вы можете добавить логику, которая пропускает шаги, которые уже выполнены.

В противном случае я не вижу способа изменить это.

0

Я думаю, что довольно старая статья, но только что наткнулась сейчас. В случае, если вы все еще хотите попробовать вы можете сделать следующее:

Сделайте ваш скрипт работает под PDB как: питон -m PDB

Это будет работать под PDB. После ввода pdb просто введите команду 'c' (продолжить). Это начнет вашу программу.

Когда вы сталкиваетесь с бесконечным циклом, просто выполните ctrl + c, это остановит программу в отладчике. Теперь вы можете запускать любые инструкции python, которые вы хотите. Возможно, вы также можете определить новый скрипт, импортирующий его, и запустить функции из этого сценария или выйти.

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

Смежные вопросы