Python相对导入的奇怪现象

2 投票
1 回答
992 浏览
提问于 2025-04-16 18:19

我有一个文件:

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 个回答

4

这个应该可以正常工作:

from ...utils.filesystem import getAbsPath

原因是:

  • from . import … 是从 STARTDIR/module/submodule/ 导入的
  • from .. import … 是从 STARTDIR/module/ 导入的
  • from ... import … 是从 STARTDIR/ 导入的

撰写回答