python相对导入怪异

Cla*_*diu 1 python import

我有一个文件:

STARTDIR/module/submodule/config.py
Run Code Online (Sandbox Code Playgroud)

我还有另一个文件:

STARDIR/utils/filesys/getAbsPath.py
Run Code Online (Sandbox Code Playgroud)

为什么这行有效config.py

from ..utils.filesys import getAbsPath
Run Code Online (Sandbox Code Playgroud)

似乎是..module,不是STARTDIR。有没有utilsmodule所有。实际上,

from .. import utils
Run Code Online (Sandbox Code Playgroud)

产量

ImportError: cannot import name utils
Run Code Online (Sandbox Code Playgroud)

Dav*_*ver 5

这应该工作:

from ...utils.filesystem import getAbsPath
Run Code Online (Sandbox Code Playgroud)

这是因为:

  • from . import … 从进口 STARTDIR/module/submodule/
  • from .. import … 从进口 STARTDIR/module/
  • from ... import … 从进口 STARTDIR/