Python:从importlib模块导入

时间:2019-08-01 21:27:14

标签: python python-import python-importlib

我有一个这样的目录:

parent.py ------+
    child1.py---+
    child2.py---+
    ... etc

我可以这样导入父模块:

importlib.import_module("parent"))

那么,既然我已经有了父模块,那么获得子模块的最佳方法是什么?我尝试parent.child1importlib.import_module("child1", parent)parent.import_module('child1')等都无济于事。

有什么建议吗?

谢谢

2 个答案:

答案 0 :(得分:0)

您可以尝试通过以下方式组织文件:

parent (directory)-+
    __init__.py ---+
    child1.py   ---+
    child2.py   ---+

init .py中,您可以从子*文件中导入文件,并且可以从父文件中的模块外部导入文件。

示例__init__.py。它也可以是空的,但必须存在。

from child1 import foo
from child2 import bar

从外部使用:

from parent import foo
or
from parent.child1 import foo

这不能直接回答您的问题。但是,按照上述方式重新组织文件后,请尝试再次使用importlib。

答案 1 :(得分:0)

您可以为此使用可选参数包:

importlib.import_module("child1", package="parent")

文档参考:https://docs.python.org/3.7/library/importlib.html#importlib.import_module