dpq*_*dpq 27 python dynamic-import
我有一个可信的远程服务器,存储许多自定义Python模块.我可以通过HTTP(例如使用urllib2.urlopen)作为text/plain 获取它们,但是我无法将获取的模块代码保存到本地硬盘.如何将代码作为完全可操作的Python模块导入,包括其全局变量和导入?
我想我必须使用某些组合exec和imp模块的功能,但我还是无法让它工作.
Dav*_*ver 45
看起来这应该可以解决问题:导入动态生成的模块
>>> 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' …> >>>