2

データ分析のワークフローを可能にするかなり大きな Python アプリケーション (wxpython) を開発しています。ワークフローのすべてのステップを実行すると、非常に時間がかかる可能性があり、ユーザーはすべてを一度に実行できるとは限りません。おそらく、彼は処理のさまざまな部分をさまざまな時点で行うことを好むでしょう。したがって、ある種の「プロジェクトの保存」機能を使用して、アプリケーションの現在のステータスを保存できると非常に便利です。アプリケーションを開いてプロジェクト ファイルをロードすると、以前と同じようにアプリケーションがセットアップされ、最後に中断したところから続行できるようになります。

ただし、保存するオブジェクトが大量にあり、そのほとんどには wxpython からの属性が染み込んでいます。これにより、pickle が次のエラーで失敗します: TypeError: can't pickle PySwigObject objects

誰もこれを経験していますか?必要な機能を取得するためのベスト プラクティスは何ですか? これ専用のライブラリはありますか?

ありがとうございます。

4

1 に答える 1

1

wxPython は、wxWidgets として知られる C++ ライブラリのラッパーです。そのため、通常の Python シリアライゼーションを使用してその状態を保存することはできません。ただし、持続ライブラリを使用してほとんどのウィジェットの状態を保存できます: http://wxpython.org/Phoenix/docs/html/lib.agw.persist.html

このライブラリがいつ wxPython に追加されたのかはわかりませんが、2.9 または 2.8 の最新バージョンであったと推測しています。それ以外の場合は、おそらく 2.8 のソースの最新バージョンで見つけることができます。

他の人が言ったように、通常はプロセスの状態を保存し、起動時にその情報を GUI にロードする方がよいでしょう。

于 2013-08-26T14:02:06.007 に答える