关于动态导入模块的困惑

时间:2020-10-04 08:38:13

标签: python python-3.x import python-importlib

所以我要寻找的是下面的内容,一些代码检查所需的模块是否已经导入到main.py中,如果没有,请导入:

try:
    from __main__ import sys
    from __main__ import importlib
except:
    import sys
    import importlib
finally:
    modules = ['os','ctypes.windll']
    for modul in modules:
        if modul not in sys.modules:
            importlib.import_module(modul)

这段代码的问题是它无法处理所谓的submodules。 因此,我认为下面的代码即使效率低下也能正常工作,但效果不明显。

finally:
    modules = ['os','ctypes','ctypes.windll']
    for modul in modules:
        if modul not in sys.modules:
            importlib.import_module(modul)

所以主要问题是如何避免在每个Costum模块中导入模块和子模块?原因我觉得这会使我的代码慢一些。一种不同的解决方案可能是使用import语句进行模数转换,但这并不是我建议的答案here那样的建议。

我强烈建议您不要这样做。你正在做 全局包含文件错误再次出现。

在python 3.7中是否有 pythonic 方式来做到这一点,而我在研究中错过了它?

0 个答案:

没有答案