【问题标题】:Python: import submodule from importlib modulePython:从 importlib 模块导入子模块
【发布时间】:2019-08-01 21:27:14
【问题描述】:

我有一个这样的目录:

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

我可以像这样导入父模块:

importlib.import_module("parent"))

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

有什么建议吗?

谢谢

【问题讨论】:

标签: python python-import python-importlib


【解决方案1】:

你可以尝试用这种方式组织文件:

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

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

例如__init__.py。也可以为空,但必须存在。

from child1 import foo
from child2 import bar

从外部使用:

from parent import foo
or
from parent.child1 import foo

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-10-30
      • 2018-11-27
      • 2022-01-05
      • 2014-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      相关资源
      最近更新 更多