[解決済み】Pythonで最小限のプラグインアーキテクチャを構築する
質問
Pythonで書かれたアプリケーションを持っていますが、かなり技術的な読者(科学者)に使用されています。
私は、ユーザーによってアプリケーションを拡張可能にする良い方法、すなわちスクリプト/プラグイン・アーキテクチャを探しています。
私は何かを探しています <強い 超軽量 . ほとんどのスクリプトやプラグインは、サードパーティによって開発・配布され、インストールされるものではなく、繰り返しのタスクを自動化したり、あるファイルフォーマットのサポートを追加したりするために、ユーザーが数分で作り上げるものでしょう。ですから、プラグインは最小限の定型的なコードを持ち、フォルダにコピーする以外には「インストール」を必要としません (ですから setuptools entry points や Zope plugin architecture のようなものは過剰だと思われます)。
このようなシステム、または同様のスキームを実装しているプロジェクトで、私がアイデアやインスピレーションを得るために見るべきものはありますか?
解決方法は?
私のは、基本的に、"plugins"というディレクトリで、メインアプリがポーリングして使うことができます。 imp.load_module でファイルをピックアップし、よく知られたエントリーポイントを探し、おそらくモジュールレベルの設定パラメータを付けて、そこから移動します。私は、プラグインがアクティブになるダイナミズムのために、ファイル監視のものを使っていますが、これは必要なものです。
もちろん、「Xは必要ない、軽量なものがいい」という要求があれば、Xを一度に1つずつ実装し直すというリスクはあります。でも、それを楽しんでやれないわけではありません。)
関連
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonの非常に便利な2つのデコレーターを解説
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
python implement mysql add delete check change サンプルコード
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み】Python: OverflowError: 数学の範囲エラー