我有一个项目试图动态创建一个新模块,然后在后续exec
语句中尝试导入该模块。
import imp
s="""
class MyClass(object):
def __init__(self):
pass
def foo(self):
pass
"""
mod = imp.new_module("testmodule.testA")
exec s in mod.__dict__
exec "import testmodule.testA"
但这会引发此异常:
Traceback (most recent call last):
File "test.py", line 14, in <module>
exec "import testmodule.testA"
File "<string>", line 1, in <module>
ImportError: No module named testmodule.testA
我已经尝试了几件事:将它添加到 sys.modules,创建一个scope
包含名称和模块的字典。但没有骰子。当我print locals()
在我的exec
语句中执行 a 时,我可以看到 testmodule.testA,但我无法导入它。我在这里想念什么?
谢谢你。