如何使用 Python Namespaced Packages 開發程式?


在 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 名稱空間包。

更新日期: 2019 年 10 月 1 日

177 次瀏覽

開啟你的職業生涯

完成課程後,獲得認證

開始
廣告
© . All rights reserved.