使用 Python 个共享基本名称的包
Using Python packages that share a base name
考虑两个包:x.y.z
和 x.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它是否有效。
有人愿意解释一下吗?
考虑两个包:x.y.z
和 x.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它是否有效。
有人愿意解释一下吗?