Google App Engine中的imp模块为空
因此,是否有另一种方法来执行imp.load_module()
函数的作用 - 即从文件对象返回模块对象?
(或者甚至更普遍 - 甚至是从任何随机代码片段(发送到exec()或其他东西)生成模块对象的方法?)
答案 0 :(得分:1)
好吧,你可以尝试:
>>> import types
>>> foo = types.ModuleType('foo')
但它显然是空的,你必须以其他方式“填充”它,包括
>>> exec('bar=2', foo.__dict__)
>>> foo.bar
2
最大的问题是为什么你会这么想。执行“随机代码”通常是一个非常糟糕的主意。 :-)这在任何情况下都是一个安全漏洞,如果你以某种方式允许编辑这个TTW,你只是要求某人破解你的网站。
答案 1 :(得分:0)
你看过__import__
了吗? See here...它也会返回一个模块。您使用imp
的原因是什么?