python 子模块隐藏其他包

python submodule shadowing other package

考虑这些导入

# main.py
from b.c import X
from a.b import Y

# a/b.py
from b.c import X

开始时main.py。 "from b.c" 导入有效,但在 a/b.py 内部似乎 python 现在尝试将导入解析为“a/b/c.py。为什么会这样有没有办法避免这种情况(重命名 b.py 除外)?

其实好像只要改变一下就可以了

# a/b.y
from __future__ import absolute_import
from b.c import X