Как перезапустить скрипт Python с подфункциями - PullRequest
0 голосов
/ 02 июля 2018

У меня есть массивный скрипт на Python, который нужно перезапускать автоматически, когда он ломается. Когда я пытаюсь использовать стандартный подход, оборачивая скрипт в функцию и затем вызывая его через while True, я получаю эту ошибку:

SyntaxError: unqualified exec is not allowed in function 'wrappedFunc' because it contains a nested function with free variables

Как я понимаю, это связано с тем, что мой основной скрипт имеет подфункции. Могу ли я сделать это как-то через Python или это нужно сделать в Windows через командный файл?

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

exec команда: execfile('file.py'). Небезопасный и взломанный. Избегайте, где это возможно. Создает процесс оболочки: os.system('python file.py'). Используйте, когда отчаянно.

PS: я не пробовал запускать / запускать тот же файл

0 голосов
/ 02 июля 2018

Ошибка связана с использованием ключевого слова exec внутри функции, которая имеет подфункции. Python требует, чтобы вы явно указали, какую область exec будет использовать для запуска в этом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...