首页 > 解决方案 > 使用共享基本名称的 Python 包

问题描述

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

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

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

标签: pythonpython-importpython-packaging

解决方案


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

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

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

但是我不确定它为什么/如何工作。

有人愿意解释吗?


推荐阅读