Я разрабатываю программное обеспечение, и по нескольким причинам хочу разработать собственную функцию автоматического обновления. Программа представляет собой полный графический интерфейс, написанный с помощью PyQt, и использует значки, файлы данных и т. Д. Он будет заморожен с помощью cx_freeze или pyinstaller.Обновить программу: перезаписать файлы?
Часть автообновления загрузит новую версию (zip) на удаленном сервере. Затем это осложняется:
Программное обеспечение запущено и загрузило новую версию. Что он делает с новой версией? Может ли программа извлечь файлы из zip и перезаписать файлы запущенной версии?
Или мне нужно сохранить новую версию в сторону, выйти из текущей версии и как-то использовать новую версию? Если да, то как мне сделать обмен между старой и новой версией?
EDIT:
Вот, например, closeEvent
метод моего класса QMainWindow:
def closeEvent(self, event):
"""Method to perform actions before exiting.
Allows to save the prefs in a file"""
...Do some stuff...
QtGui.qApp.quit()
self.logger.info("Closing the program")
Могу ли я использовать этот метод для выполнения обмена?
Открыть нить без 'deamon' удалить старые файлы, а затем извлечь новые. Но нужно сравнить все файлы конфигурации с отсутствующими/недопустимыми параметрами. Конечно, запустите все связанные приложения, прежде чем начинать новый! – dsgdfg
Я отредактировал мой вопрос, чтобы быть более точным, если это поможет. Не могли бы вы показать мне, как и где я должен открыть поток? – Rififi