8.4.2 Intra-package References
The submodules often need to refer to each other. For example, the
‘surround’ module might use the
echo module. In fact, such references
are so common that the
import statement first looks in the
containing package before looking in the standard module search path.
Thus, the surround module can simply use
import echo or
from echo import echofilter. If the imported module is not
found in the current package (the package of which the current module
is a submodule), the
import statement looks for a top-level module
with the given name.
When packages are structured into subpackages (as with the
‘Sound’ package in the example), there's no shortcut to refer
to submodules of sibling packages - the full name of the subpackage
must be used. For example, if the module
‘Sound.Filters.vocoder’ needs to use the
in the ‘Sound.Effects’ package, it can use
from Sound.Effects import echo.