我希望在 Python (3.7) 中动态导入一个模块,其中模块的代码是在一个字符串中定义的。
下面是一个使用该imp
模块的工作示例,该模块已被弃用importlib
(从 3.4 版开始):
import imp
def import_code(code, name):
# create blank module
module = imp.new_module(name)
# populate the module with code
exec(code, module.__dict__)
return module
code = """
def testFunc():
print('spam!')
"""
m = import_code(code, 'test')
m.testFunc()
Python 的文档指出importlib.util.module_from_spec()
应该使用imp.new_module()
. 但是,似乎没有一种方法可以使用importlib
模块创建空白模块对象,就像我可以使用imp
.
我怎样才能使用importlib
而不是imp
达到相同的结果?