2014-10-02 8 views
0

Как-то я не смог найти точный ответ на это в другом месте на SO.Python - Импорт из более глубокой подпапки

Дано:

root\ 
    __init__.py 
    main.py 
    folder0\ 
     __init__.py 
     folder1\ 
      __init__.py 
      class1.py 
     folder2\ 
      __init__.py 
      class2.py 

Есть ли способ, чтобы импортировать каталог верхнего уровня в целом? например

# main.py 
import folder0 
obj1 = folder0.folder1.class1.Class1() 
obj2 = folder0.folder2.class2.Class2() 

Или мне нужно импортировать модули напрямую? например

# main.py 
from folder0.folder1 import class1 
from folder0.folder2 import class2 
obj1 = class1.Class1() 
obj2 = class2.Class2() 
+0

Вы пробовали? :) –

ответ

3

Несомненно. Вам просто нужно добавить соответствующий импорт в __init__.py полностью вниз. например .:

# folder2/__init__.py 
from . import class2 

и

# folder0/__init__.py 
from . import folder1 
from . import folder2 

и так далее.