python相对导入古怪

python relative import weirdness

我有一个文件:

1
STARTDIR/module/submodule/config.py

我有另一个档案:

1
STARDIR/utils/filesys/getAbsPath.py

为什么这条线在config.py中有效?

1
from ..utils.filesys import getAbsPath

似乎..指的是module,而不是STARTDIRmodule中根本没有utils。 事实上,做

1
from .. import utils

产量

1
ImportError: cannot import name utils


这应该工作:

1
from ...utils.filesystem import getAbsPath

这是因为:

  • from . import …STARTDIR/module/submodule/导入
  • from .. import …STARTDIR/module/导入
  • from ... import …STARTDIR/导入