Python3与exec的动态导入-为什么';as';不被处决?

Python3与exec的动态导入-为什么';as';不被处决?,python,import,module,exec,Python,Import,Module,Exec,我有一个手动携带模块的代码 exec("import" + moduleName + " as selectedModule") importlib.reload(selectedModule) 但是这个代码使 name 'seletedModule' is not defined 这不是在python2.x上发生的。 如何在python3上导入此库?如果需要动态导入库,请不要使用exec,它不安全 使用importlib.import\u模块 selected_module = impor

我有一个手动携带模块的代码

exec("import" + moduleName + " as selectedModule")
importlib.reload(selectedModule)
但是这个代码使

name 'seletedModule' is not defined
这不是在python2.x上发生的。
如何在python3上导入此库?

如果需要动态导入库,请不要使用
exec
它不安全

使用
importlib.import\u模块

selected_module = importlib.import_module(module_name)
importlib.reload(selected_module)

至于您遇到的错误:您可能正在函数范围内调用
exec
,因此需要手动将
globals
locals
设置为与
exec
()中的相同。解决方法:

exec("<do-stuff>", globals())
exec(“,globals())