从子目录导入模块

Importing modules from subdirectories

我有这样的文件结构:

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')

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

foo.py

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

子目录/__init__.py

(空)

subdir/bar.py

import baz
print "hello from bar.py"

subdir/baz.py

print "hello from baz.py"

运行foo.py

的输出
hello from baz.py
hello from bar.py
hello from foo.py