在 python 3.7 中使用 exec() 导入别名不起作用

Import alias not working using exec() in python 3.7

/my/charts/
     |- module/
         |-abc.py
     |- runtest.py
     |- main.py 
     |- sample.py

我正在尝试从 runtest.py 呼叫 main.py。在那,我想导入 abc.py 使用 exec:-

module_name = 'module.abc'
chart_type = 'abc'
exec('from {} import {} as drawing_class'.format(module_name,chart_type))

当我 运行 代码时它没有给出任何错误但是当我打印 dir(drawing_class)drawing_class 在 exec 的下一行然后它给出了一个错误。 像 NameError: 名称 'drawing_class' 未定义

但是当我在 sample.py 中编写相同的执行代码时,它按预期工作。

为什么这个 execmain.py 中不起作用?

考虑以下配置,从标准库导入代码:

module_name = 'logging.config'
chart_type = 'dictConfig'

这在调用时正常工作:

import importlib
drawing_class = getattr(importlib.import_module(module_name), chart_type)

...因此完全不需要 exec