python包内引用,如果包中使用了子包结构(就像示例中的 sound
包),可以按绝对位置从相邻的包中引入子模块。例如,如果 sound.filters.vocoder
包需要使用 sound.effects
包中的 echo
模块,它可以 from sound.effects import echo
。
你可以用这样的形式 from module import name
来写显式的相对位置导入。那些显式相对导入用点号标明关联导入当前和上级包。以 surround
模块为例,你可以这样用:
from . import echo from .. import formats from ..filters import equalizer
需要注意的是显式或隐式相对位置导入都基于当前模块的命名。因为主模块的名字总是 "__main__"
,Python 应用程序的主模块应该总是用绝对导入。