py2exe で実行可能ファイルにエクスポートされるアプリケーションを python で作成しています。アプリケーションがexeの場合に機能するプラグインシステムを作成しようとしています。
私の元のコードは次のようになりました
import os
Plugins=os.listdir('plugins')
for P in Plugins:
PItems=os.path.splitext(P)
PName=PItems[0]
if PItems[len(PItems)-1]=='.py':
Mod=__import__('plugins.'+PName,fromlist=['*'])
Mod.init()
しかし、exe にエクスポートすると、インポートしようとしたときにモジュール 'plugins.(pluginName)' が見つかりません。
プラグインは、アプリケーション API にアクセスするために import my_application も実行できる必要があります。
mcEdit (python で書かれている) とSublime Text (わからない) はこれを行うことができますが、ソース コードを調べても方法がわかりません。
exeにエクスポートしたときに機能するものを書くにはどうすればよいですか?
編集: 明確にするために
- プラグインは、アプリケーションのロード時に自動的にロードされる必要があります。それらは
plugins/
ディレクトリに保存されます import myapplication
プラグインは、またはなどのAPI 呼び出しを実行して、アプリケーションと対話できる必要がありますmyapplication.getFoo()
。myapplication.setBar(Bar)
- これらのプラグインは、1 回だけ実行することも、マウスのクリックや移動などのイベントで実行することも、画面が描画されるたびに実行することもできます。アプリケーションの実行中は、状態 (変数値、オブジェクトなど) を保持したいと思います。