使用 Python 个共享基本名称的包

Using Python packages that share a base name

考虑两个包:x.y.zx.y.w

假设我已经通过 pip 安装了 x.y.z 并且我正在本地测试 x.y.w

似乎如果我尝试 运行 import x.y.z 它会失败并显示错误 No module named x.y.z 即使它已安装。如果我切换目录,我可以很好地导入它,但那样我就没有 x.y.w。有什么方法可以同时导入吗?

将以下内容添加到我的一些 __init__.py 文件中似乎有效:

from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)

(来自 https://docs.python.org/3/library/pkgutil.html

不过我不太确定why/how它是否有效。

有人愿意解释一下吗?