如何使用 Python 命名空间包开发程序?
在 Python 中,命名空间包允许您将在多个项目中编写的 Python 代码分散开来。这在您希望将相关的库作为单独的下载版本进行发布时非常有用。例如,当 PYTHONPATH 中的目录 Package-1 和 Package-2
Package-1/namespace/__init__.py Package-1/namespace/module1/__init__.py Package-2/namespace/__init__.py Package-2/namespace/module2/__init__.py the end-user can import namespace.module1 and import namespace.module2.
在 Python 3.3 中,您无需执行任何操作,只需不将任何 __init__.py 放入命名空间包目录中即可,它就可以正常工作。这是因为 Python 3.3 引入了隐式命名空间包。
On older versions, there's a standard module, called pkgutil, with which you can 'append' modules to a given namespace. You should put those two lines in both Package-1/namespace/__init__.py and Package-2/namespace/__init__.py: from pkgutil import extend_path __path__ = extend_path(__path__, __name__)
这将把所有以包命名的 sys.path 中目录的子目录都添加到包的 __path__ 中。之后,您可以单独分发 2 个包,并利用 Python 命名空间包。
广告