如何使用 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 名稱空間包。
廣告