2019獨角獸企業重金招聘Python工程師標準>>>
setuptools維護的入口點注冊表列出了可用的插件,但是并沒有為最終用戶提供使用或啟用的方法。 下面將描述用于管理要使用的擴展集的公共模式。
通過安裝方式啟用
對于許多應用程序,僅僅安裝一個擴展就足以表明應該使用擴展。 用戶不需要明確的配置來發現或啟用擴展,因為它的入口點可以在運行時加載所有被發現的插件。
通過安裝實現的示例包括 :
- python-openstackclient
- virtualenvwrapper
明確地啟用
在其他情況下,擴展可能在系統范圍內安裝,但不應該為給定的應用程序或應用程序實例啟用。 在這些情況下,部署或使用應用程序的人員將希望選擇通過明確的配置步驟使用的插件。
通過配置指定插件啟用的例子:
- Django apps
- Sphinx extensions
- Trac Plugins
stevedore.named.NamedExtensionManager
自啟用
最后,一些應用程序會詢問它們的插件是否應該啟用。? 插件會查看系統上安裝的其他庫,檢查外部設置,或者檢查一個資源,看它是否可以由插件管理。 這些檢查通常在運行時,或者當擴展被加載,或者當用戶試圖訪問某個特定的資源時。
自啟用的例子:
- anydbm
- PIL
stevedore.enabled.EnabledExtensionManager
?