题
我有一个可信赖的远程服务器,该服务器存储了许多自定义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