質問

多くのカスタムPythonモジュールを保存する信頼できるリモートサーバーがあります。 HTTPを介してそれらを取得できます(例:使用 urllib2.urlopen)テキスト/プレーンとして。ただし、フェッチしたモジュールコードをローカルハードディスクに保存することはできません。グローバル変数やインポートなど、完全に操作可能なPythonモジュールとしてコードをインポートするにはどうすればよいですか?
の組み合わせを使用する必要があると思います execimp モジュールの機能ですが、まだ機能させることはできません。

役に立ちましたか?

解決

これはトリックをするはずです: 動的に生成されたモジュールのインポート

>>> 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' …>
>>>

他のヒント

これが私がしばらく前にブックマークしたものです。

それはあなたが望むものを少し超えていますが、基本的なアイデアはそこにあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top