Как переключить выполнение на новый скрипт в Python? - PullRequest
1 голос
/ 16 декабря 2011

Возможно ли, чтобы один скрипт вызывал другой, а затем выходил (не знаю, правильно ли я это делаю), оставляя другой скрипт запущенным?В частности, я хочу, чтобы скрипт обновления загружал installer.py и затем запускал его.Так как installer.py перезаписывает скрипт обновления, я не могу просто сделать subprocess.call(), так как он потерпит неудачу на этапе «удаления старой установки».

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

Большое спасибо и извините, если это ослепительно очевидно.

Ответы [ 2 ]

3 голосов
/ 16 декабря 2011

Одна из os.exec* семейств функций должна делать то, что вы хотите.

0 голосов
/ 17 декабря 2011

Поскольку вы загружаете другой скрипт Python, вы можете попробовать использовать exec для его запуска. В 2.x есть вспомогательная функция execfile для такого рода вещей (которая заключает в себе использование ключевого слова exec; в 3.x вы должны прочитать файл и передать полученную строку в exec (что теперь функция, если я правильно читаю).

Вы всегда должны быть на 110% уверены, что доверяете контенту в подобных случаях! Хотя, похоже, это не проблема для вас.

...