Импорт модулей из подкаталогов - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть такая файловая структура:

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 голосов
/ 01 сентября 2018

Вам также нужно __init__.py внутри вашей папки subdir. Смотрите пример ниже и вывод:

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
...