2019独角兽企业重金招聘Python工程师标准>>>
setuptools维护的入口点注册表列出了可用的插件,但是并没有为最终用户提供使用或启用的方法。 下面将描述用于管理要使用的扩展集的公共模式。
通过安装方式启用
对于许多应用程序,仅仅安装一个扩展就足以表明应该使用扩展。 用户不需要明确的配置来发现或启用扩展,因为它的入口点可以在运行时加载所有被发现的插件。
通过安装实现的示例包括 :
- python-openstackclient
- virtualenvwrapper
明确地启用
在其他情况下,扩展可能在系统范围内安装,但不应该为给定的应用程序或应用程序实例启用。 在这些情况下,部署或使用应用程序的人员将希望选择通过明确的配置步骤使用的插件。
通过配置指定插件启用的例子:
- Django apps
- Sphinx extensions
- Trac Plugins
stevedore.named.NamedExtensionManager
自启用
最后,一些应用程序会询问它们的插件是否应该启用。 插件会查看系统上安装的其他库,检查外部设置,或者检查一个资源,看它是否可以由插件管理。 这些检查通常在运行时,或者当扩展被加载,或者当用户试图访问某个特定的资源时。
自启用的例子:
- anydbm
- PIL
stevedore.enabled.EnabledExtensionManager