Python относительная странность импорта

У меня есть файл:

STARTDIR/module/submodule/config.py

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

STARDIR/utils/filesys/getAbsPath.py

Почему эта строка работает, в config.py?

from ..utils.filesys import getAbsPath

Кажется, что .. относится к module, а не STARTDIR. В module вообще нет utils. Фактически, делая

from .. import utils

дает

ImportError: cannot import name utils

Ответ 1

Это должно работать:

from ...utils.filesystem import getAbsPath

Это происходит потому, что:

  • from . import … импорт из STARTDIR/module/submodule/
  • from .. import … импорт из STARTDIR/module/
  • from ... import … импорт из STARTDIR/