从子目录导入模块

时间:2018-09-01 04:36:26

标签: python path directory python-import

我有这样的文件结构:

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

1 个答案:

答案 0 :(得分:1)

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

foo.py

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

subdir / __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