我理解from __future__ import absolute_import
使得搜索过程的顺序来自"最近的目录 - >起源目录"到"原始目录 - >最近的",但我无法解释为什么以下失败:
/package_root
- __init__.py
- abc.py
(在__init__.py
上)
# without this, all works well:
from __future__ import absolute_import
from .abc import something # => OK
from . import abc # => ImportError: Cannot import name abc
import abc # => ImportError: No module named abc
这不是我的预期。为什么不能通过这个导入?如果没有名称冲突,那还不行吗?
(当然我确定它不是通过循环导入,因为当目标是空文件时也会发生。)