Pythonモジュールを動的にインポートします
-
05-10-2019 - |
質問
多くのカスタムPythonモジュールを保存する信頼できるリモートサーバーがあります。 HTTPを介してそれらを取得できます(例:使用 urllib2.urlopen
)テキスト/プレーンとして。ただし、フェッチしたモジュールコードをローカルハードディスクに保存することはできません。グローバル変数やインポートなど、完全に操作可能なPythonモジュールとしてコードをインポートするにはどうすればよいですか?
の組み合わせを使用する必要があると思います exec
と imp
モジュールの機能ですが、まだ機能させることはできません。
解決
これはトリックをするはずです: 動的に生成されたモジュールのインポート
>>> import imp >>> foo = imp.new_module("foo") >>> foo_code = """ ... class Foo: ... pass ... """ >>> exec foo_code in foo.__dict__ >>> foo.Foo.__module__ 'foo' >>>
また、ActiveStateの記事で示唆されているように、新しいモジュールをに追加することをお勧めします sys.modules
:
>>> import sys >>> sys.modules["foo"] = foo >>> from foo import Foo <class 'Foo' …> >>>
他のヒント
所属していません StackOverflow