我有这段代码可以手动携带模块
exec("import" + moduleName + " as selectedModule")
importlib.reload(selectedModule)
但是这段代码使
name 'seletedModule' is not defined
在python2.x上没有发生。 如何在python3上导入它?
答案 0 :(得分:3)
如果您需要动态导入库,请不要使用exec
,这并不安全。
改为使用importlib.import_module
。
selected_module = importlib.import_module(module_name)
importlib.reload(selected_module)
对于所得到的错误,您可能是在函数范围内调用exec
,因此您需要手动将globals
和locals
设置为相同在exec
(Using a function defined in an exec'ed string in Python 3)中。解决方法:
exec("<do-stuff>", globals())