Другой вариант, если то, что вы пишете, является частью пакета, это использовать относительный импорт следующим образом:
from .. import foo
, где foo
- имя модуля, который вы пытаетесь импортировать.
Точно так же, если у вас есть другой модуль в текущем каталоге, вы можете использовать:
from . import bar
К сожалению (или, возможно, не так печально), однако, это не расширяетсядальше, чем это.Вы не можете подняться к бабушке и дедушке или выше.
РЕДАКТИРОВАТЬ :
Как любезно указал JAB, мой последний комментарий не соответствует действительности:
from ... sys import path
Обратите внимание, что, хотя этот последний случай является законным, он, безусловно, не рекомендуется (слово "безумный" использовалось Гвидо).
Я, должно быть, слишком усвоил описание Гвидо.; ^)
РЕДАКТИРОВАТЬ :
Хорошо, я только что проверил это в 2.7 - это, очевидно, идет так глубоко, как вам нравится, и зависит от числа .
from .... import greatgrandparent
отлично работает.Я думаю, мне понадобится ведро