【问题标题】:Importing modules from subdirectories从子目录导入模块
【发布时间】:2018-09-01 04:36:25
【问题描述】:

我有这样的文件结构:

package/
  __init__.py
  foo.py
  subdir/
    bar.py
    baz.py

我希望能够运行 foo.py 并导入 bar.py。在bar.py 内部,baz.py 使用import baz 导入。问题是bar 无法导入baz,如果我将其导入foo

foo.py

from importlib import import_module
import_module('subdir.bar', package='package')

【问题讨论】:

    标签: python path directory python-import


    【解决方案1】:

    您还需要在您的subdir 文件夹中添加一个__init__.py。请参阅下面的示例和输出:

    foo.py

    from subdir import bar
    print "hello from foo.py"
    

    子目录/__init__.py

    (空)

    子目录/bar.py

    import baz
    print "hello from bar.py"
    

    子目录/baz.py

    print "hello from baz.py"
    

    运行foo.py的输出

    hello from baz.py
    hello from bar.py
    hello from foo.py
    

    【讨论】:

    • 对于任何可导入的模块,您需要在其中包含一个 init.py。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 2019-11-10
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多