包裝常見的python名稱空間
我想在未來幾天打包和上傳一個我已經到PyPI的庫,但是我對某個名稱空間的方法有點不確定.
我有一些其他不相關的專案,具有類似的方法,並希望給他們所有相同的名稱空間.例如:
> Library 1名稱空間:abc.seo
> Library 2名稱空間:abc.ajax
> Library 3名稱空間:abc.ecommerce
>等
問題是我不確定兩個單獨的包(例如,蛋)是否可能與同一父名稱空間共存.這個方法是有問題的,還是有辦法呢?最好的方法是什麼?
圖書館不應該打包在一起,它們是無關緊要的.我希望在上傳之前正確獲取它,以避免在進行“官方”釋出之後痛苦的名稱空間更改.
(NB abc不是真名,我想讓我的問題免於廣告)
UPDATE
我去了以下,對沒有安裝工具的人來說很好:
try: __import__('pkg_resources').declare_namespace(__name__) except ImportError: __path__ = __import__('pkgutil').extend_path(__path__, __name__)
在setup.py中執行以下操作:
setup( ... namespace_packages = ['rollyourown'], ...
在每個專案基礎目錄中,建立以下結構:
/setup.py /abc/__init__.py /abc/seo/
/abc/__init__.py包含:
__import__('pkg_resources').declare_namespace(__name__)
setup.py包含:
setup(..., packages: ['abc', 'abc.seo'], namespace_packages = ['abc'] ... )
參考文獻:ofollow,noindex" target="_blank">namespace packages .
http://stackoverflow.com/questions/5064951/packaging-common-python-namespaces