wxPython - 应用程序更新程序

时间:2013-10-31 09:18:31

标签: python python-2.7 wxpython

我用wxPython和cefPython构建了一个应用程序。现在我正在构建一个更新程序来更新我的软件。

流程如下:

  1. 应用启动时会调用更新程序
  2. 更新程序检查API
  3. 如果版本早于API,则会下载新的压缩包
  4. 下载完成后,它会关闭应用程序
  5. 已关闭,现在它应该提取新文件
  6. 已提取,现在必须再次打开该程序。
  7. 我认为问题出现在第4点,因为我认为该过程已经关闭,所以现在其他步骤都没有发生。

    我应该如何做到这一点,以便更新程序(我从主程序导入和调用)也不会关闭,如果这是问题。

    以下是一些代码:

    import updater (updater.py)
    
    class MyApp(wx.App):
        timer = None
        timerID = 1
        def OnInit(self):       
            if not USE_EVT_IDLE:
                print("Using TIMER to execute the CEF message loop work")
                self.CreateTimer()
            global frame
            frame = MainFrame()
            self.SetTopWindow(frame)
            frame.Show(False)       
            **thread.start_new_thread(checkForUpdate, ()) --- This is where im calling the update function**
            return True
    
    
    
    def checkForUpdate():
        print("Checking for update: %s" % time.ctime())
        updater.callAPI()
        threading.Timer(120, checkForUpdate).start()
    

    由于

1 个答案:

答案 0 :(得分:1)

由于您使用的是wxPython,为什么不使用它的内置更新程序模块?我认为它们是在2.8的最新版本中添加的,它绝对包含在2.9中。他们基本上采用了Esky项目并将其包装在wxPython帮助程序中,以使其更易于使用。我在这里写了一个关于这个主题的教程:

你可以在这里阅读esky:

我也听说过“goodasnew”项目,但我还没有尝试过: