Python 2 & 3 compatible namespace modules (using pip)
如何构建多个共享同一名称空间的Python模块,使之与Python 2.7+和3.3+兼容?
让我们调用名称空间
模块
1 2 | import pkg_resources pkg_resources.declare_namespace(__name__) |
当导入
名称空间包的python 3解决方案是隐式名称空间包,其中名称空间包没有
我如何为python 2和3设计一个解决方案(允许我使用
您应该使用pkgutil风格的名称空间包。
来自https://packaging.python.org/guides/packaging-namespace-packages/:
pkgutil-style namespace packages
Python 2.3 introduced the pkgutil module and the extend_path function. This can be used to declare namespace packages that need to be compatible with both Python 2.3+ and Python 3. This is the recommended approach for the highest level of compatibility.
列出处理命名空间包的所有可能方法以及哪些方法可以协同工作的表:https://github.com/pypa/sample-namespace-packages/blob/master/table.md
我最近遇到了一个类似的问题,我必须为python 2和3安装一个包。我最终不得不从Github下载代码,然后通过调用
和
这将导致为python 2和3安装包,即使代码本身是针对python2的。这允许我使用包,无论是使用python 2还是3,都不会发生任何名称空间冲突。
有关在Python2和3上都可以使用的完整说明,请参见类似问题的答案。
简而言之,除了
如果您仍然有问题,请为每个模块发布您的