1

Iv は、wxPython と cefPython を使用してアプリケーションを構築しました。現在、ソフトウェアを更新するためのアップデーターを構築しています。

プロセスは次のとおりです。

  1. アプリが起動すると、アップデーターが呼び出されます
  2. アップデーターは API でチェックします
  3. バージョンが API より古い場合、新しい圧縮パッケージをダウンロードします
  4. ダウンロードが完了すると、アプリケーションが閉じます
  5. 閉じました。新しいファイルを抽出する必要があります。
  6. 抽出されたので、プログラムを再度開く必要があります。

ポイント 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()

ありがとう

4

1 に答える 1

1

wxPython を使用しているのであれば、組み込みのアップデーター モジュールを使用してみませんか? それらは最新バージョンの 2.8 で追加されたと思いますが、2.9 には確実に含まれています。彼らは基本的に Esky プロジェクトを採用し、それを wxPython ヘルパーでラップして、さらに使いやすくしました。この件に関するチュートリアルをここに書きました:

そして、ここでeskyについて読むことができます:

「goodasnew」プロジェクトについても聞いたことがありますが、まだ試していません。

于 2013-10-31T13:34:33.640 に答える