我的程序包括以下步骤:
- 检查更新
- 如果存在更新,请下载它,解压缩并重新启动程序
- 每 30 秒在一个新线程中运行更新检查
YAY
运行每 5 秒打印一次单词的主程序
这是更新检查器的代码:
client = Client(ClientConfig, refresh=True)
appUpdate = client.update_check(ClientConfig.APP_NAME,
ClientConfig.APP_VERSION,
channel='stable')
if appUpdate:
if hasattr(sys, "frozen"):
downloaded = appUpdate.download()
if downloaded:
status = UpdateStatus.EXTRACTING_UPDATE_AND_RESTARTING
print('Extracting update and restarting...')
time.sleep(10)
appUpdate.extract_restart()
else:
status = UpdateStatus.UPDATE_DOWNLOAD_FAILED
else:
status = UpdateStatus.UPDATE_AVAILABLE_BUT_APP_NOT_FROZEN
else:
status = UpdateStatus.NO_AVAILABLE_UPDATES
print(UPDATE_STATUS_STR[status])
此外,我正在尝试使用nssm将该程序作为 Windows 服务运行。
当新版本的程序上传到 s3 时,pyupdater 会尝试更新程序,但它永远不会成功,导致主程序永远不会启动。但是,如果我不使用nssm,它就可以正常工作。