dynamic导入Python模块
我有一个可信的远程服务器,存储了很多自定义的Python模块。 我可以通过HTTP(例如使用urllib2.urlopen
)作为text / plain来获取它们,但我无法将获取的模块代码保存到本地硬盘。 我如何将代码作为一个完全可操作的Python模块导入,包括其全局variables和导入?
我想我必须使用exec
和imp
模块的function的一些组合,但我一直无法使其工作。
看起来这应该做的伎俩: 导入一个dynamic生成的模块
>>>importimp >>> foo = imp.new_module(“foo”) >>> foo_code =“”“ ... Foo级: 通过 ...“”“ >>> foo中的exec foo_code .__ dict__ >>> foo.Foo .__模块___ “富” >>>
另外,正如ActiveState文章中所build议的那样,您可能需要将新模块添加到sys.modules
:
>>>导入sys >>> sys.modules [“foo”] = foo >>>从foo import Foo <class'Foo'...> >>>
下面是我collections的一些东西,包括类似的东西:
- 自定义Python导入系统
这是有点超出你想要的,但基本的想法是在那里。