我有一个这样的目录:
parent.py ------+
child1.py---+
child2.py---+
... etc
我可以这样导入父模块:
importlib.import_module("parent"))
那么,既然我已经有了父模块,那么获得子模块的最佳方法是什么?我尝试parent.child1
,importlib.import_module("child1", parent)
,parent.import_module('child1')
等都无济于事。
有什么建议吗?
谢谢
答案 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