【发布时间】:2019-04-29 14:14:39
【问题描述】:
我希望在 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 来获得相同的结果?
【问题讨论】:
标签: python python-3.x python-importlib dynamic-import