Если вы поместите большую часть кода в модуль, вы можете попросить главный файл (запускаемый) проверить местоположение обновления, автоматически загрузить самую последнюю версию и установить ее до импорта модуля. .
Таким образом, вам не нужно будет перезапускать приложение, чтобы запустить самую последнюю версию, просто переимпортируйте модуль.
# Check version of module
import module
# Check update address
if update_version > module.version:
download(update_module)
import module
reload(module)
module.main()
Вы можете использовать функцию reload (), чтобы заставить модуль перезагрузить свои данные. Обратите внимание, что есть некоторые предостережения: объекты, созданные с использованием классов в этом модуле, не будут волшебным образом обновлены до новой версии, и «из материала импорта модуля» до повторного импорта может привести к «материалу», ссылающемуся на старый объект »module.stuff. ».
[Ясно, что я не читал предыдущий пост достаточно ясно - он делает именно то, что я предлагаю!]