問題タブ [dynamic-import]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - データを python モジュールとして保存するのは合理的ですか?
これは私がプロジェクトのために行ったことです。データを操作するいくつかのメソッドを備えた基本的に辞書であるデータ構造がいくつかあります。それらをディスクに保存するときは、モジュールとしてインポートすると同じデータをそのようなデータ構造にロードするコードとして .py ファイルに書き出します。
これは合理的ですか?大きなデメリットはありますか?利点は、保存したデータで操作したいときに、必要なモジュールをすばやくインポートできることです。また、別個のパーサーまたはローダー機能が必要ないため、モジュールをアプリケーションの残りの部分とは別に使用できます。
python - ロジック ファイルを変更せずにさまざまなモジュールをロードする
統一された(同じ)インターフェースを持つ2つの異なるモジュールがあるとします。ファイルのリストは次のようになります。
また、pyfacebook.py と pymyspace.py には同じインターフェイスがあります。つまり、次のことを意味します。
質問があります。コードを複製せずに logic.py でロジックを実行したいので、どのモジュールを使用しているかを示すフラグを設定するだけで、Python が適切なコードを自動的にロードする方法を知りたいと思っています。つまり、次のことを意味します。
次に、PLATFORM = 'myspace' を変更すると、ロジックが自動的に機能します。
では、どうすればこれを行うことができますか?
動的インポートを使用するか、生の python コードを評価するかは疑問ですが、良い解決策ではないようです。または、均一なラッパーを作成できれば
誰でも助けることができますか?
python - Pythonモジュールを動的にインポートする
多くのカスタムPythonモジュールを格納する信頼できるリモートサーバーがあります。HTTP経由で(たとえば、を使用してurllib2.urlopen
)text / plainとしてフェッチできますが、フェッチしたモジュールコードをローカルハードディスクに保存できません。グローバル変数とインポートを含め、完全に操作可能なPythonモジュールとしてコードをインポートするにはどうすればよいですか?
モジュールの機能のいくつかの組み合わせを使用する必要があると思いますがexec
、imp
まだそれを機能させることができませんでした。
python - フルパスが与えられたモジュールからのクラスリストの動的モジュールインポート
まず、次の質問を読んだことを述べるのが適切だと思われます。
そして、彼らが私のユースケースに対処しているとは思えません。とはいえ、ここに私の質問があります:
次のような構成ファイルから動的にインポートするにはどうすればよいですか。
このようにRESTfulインターフェースを介して既知のオブジェクトを呼び出すことができるようにします。
そして、そのクラスのインスタンスに対する get() の結果で応答できます。
jstl - Stripes を使用した複数の c:import が問題を引き起こしている
同じ jsp で複数の c:import タグを使用して同じ Stripes アクションを呼び出すと、問題が発生します。最初の c:import を使用するときは、いくつかの c:params を使用します。これらは、アクションの対応するフィールドにバインドされます。しかし、次の c:import を使用すると、フィールドは最初の c:import から既に設定されていますが、これは私が望んでいるものではありません。アクションを何度かインポートできるようにしたいのですが、毎回 c:param タグで渡した値のみを使用する必要があります。
私が考えることができる唯一の解決策は、バインディングと検証が行われる前に、すべてのフィールドを null に設定するメソッドを呼び出すことです。それは悪い考えですか?これを処理する最良の方法は何ですか?
この例では、c:import を使用する 1 回目と 2 回目の両方で、catName が「ジュニア」に設定されています。
python - 文字列からファイル内のメソッドを動的にインポートします
私は文字列を持っています、言います:abc.def.ghi.jkl.myfile.mymethod
。動的にインポートするにはどうすればよいmymethod
ですか?
これが私がそれについて行った方法です:
個別のモジュールをインポートする必要があるのではないかと思います。
編集:私はPythonバージョン2.6.5を使用しています。
python-2.7 - いつでも変更される可能性があるグローバル変数の定義を含むファイルを動的にインポートおよび再インポートする方法
リストの実際の状態が必要です。これはいつでも変更される可能性があります。
mylist.py
初めてインポートするときは実際の状態ですが、mylist.py のリストは変更される可能性があります。関数が呼び出されるたびに再インポートする必要があります。
somecode.py
python - py2exeで動的インポートを処理する
py2exeを使用してアプリの.exeを準備するときに問題が発生します。この問題の原因は、動的に定義されたモジュールのクラスを使用するために作成した次の関数です。
以下を使用してクラスをロードしようとすると、
.exeを実行すると、次のエラーが発生します。
france.model.data.pyが存在することを正確に示す必要があります。
この問題に対処するための適切な方法は何でしょうか?
詳細については、セットアップファイルへのリンクを参照してください:https ://github.com/openfisca/openfisca/blob/dev/src/setup_x64.py
python - Python 2.7 isinstance が動的にインポートされたモジュール クラスで失敗する
現在、モジュール クラスの拡張をサポートするために、ある種の小さな API を作成しています。ユーザーは自分のクラス名を構成に書き込むだけで、プログラムで使用できるようになります。create(**kwargs)
クラスのモジュールには、基本モジュール クラスのインスタンスを返すために呼び出される関数があり、特別なフォルダーに配置されるという契約があります。ただし、インポートが動的に行われるとすぐに isinstance チェックが失敗します。
モジュールは lib/services/ nameに配置されます
モジュール基本クラス (lib/services/service 内)
サンプル モジュール クラス (lib/services/ping 内)
インポート機能
呼び出しコード
私は一体何を間違っているのですか
これは圧縮された小さな例です。test.py
引数なし
で抽出して実行するだけです。
python - Python でまだ明示的な動的インポートを作成する
さて、これは少し複雑です。
パッケージ内にモジュールがあるとしましょう:
内部a_module.py
で私は宣言しA_Class
ます:
これを行うことで、インスタンスを作成してメソッドA_Class
を呼び出すことができます。say
ただし、より動的なアプローチを行いたい (パッケージとクラスをたくさん用意する予定で、コードをより簡単に記述できるようにしたい)。だから、私はと呼ばれる関数を作りますload_class
プログラムは期待どおりに動作しますが、IDE (私は pydev を使用) は私のコードを理解せず、インテリセンス (コードを自動的に完成させます) を実行できません。
最初のアプローチを使用すると、インテリセンスは明らかに機能します。
しかし、2 番目のアプローチを使用すると、インテリセンスは補完を行うことができません。
私は知っています、これはPythonでの動的インポートのトレードオフです。exec
しかし、ジェネリックIDE(Pydevなど)のインテリセンスにクラス内のメソッドを推測させることができる2番目のアプローチ(を使用していない可能性があります)を実行できる代替手段があるかどうかを知りたいですか?
編集:なぜこれを行う必要があるのですか? 私がそのようなディレクトリ構造を持っているとしましょう
にneed_dynamic.py
は、次のスクリプトがあります。
これは単純化のためです。実際には、ディレクトリを取得して自動的food_list
に埋める予定です。subfood_list
データ分類フレームワークがあり、ユーザーが使用したい方法を選択できるようにしたいとします。ユーザーは、python パッケージをモジュールに追加するだけで、フレームワークを拡張することもできます。
この例が妥当であることを願っています。
受け入れられた回答をもう一度編集しても、インテリセンスの問題は解決しません。しかし、より良いコーディング方法を示しています。Pythonの問題ではなく、IDEの問題だと思います。別の質問を投稿します。