
plugin_b/pyproject.toml:
[project] name = "plugin_b" version = "1.0.0" dependencies = ["pluggy==1.3.0", "pluggable"] [project.entry-points.pluggable] plugin_b = "b" # 修改 entry point 名称为 plugin_b
注意,Entry Point 的名称(例如 plugin_a 和 plugin_b)需要与插件的实际名称相对应,并且必须是唯一的。
虽然不是强制性的,但建议在 pluggable.py 中使用 add_hookspecs() 方法将 hook 规范添加到 PluginManager 中。这有助于 Pluggy 验证插件实现是否符合规范。
# pluggable/pluggable.py
import pluggy
NAME = "pluggable"
impl = pluggy.HookimplMarker(NAME)
@pluggy.HookspecMarker(NAME)
def run_plugin():
pass
def main():
m = pluggy.PluginManager(NAME)
m.add_hookspecs(sys.modules[__name__]) # 添加 hook 规范
m.load_setuptools_entrypoints(NAME)
m.hook.run_plugin()
if __name__ == "__main__":
import sys
main()完成上述修改后,重新安装插件并运行 pluggable.py,应该能够看到两个插件都成功运行:
在原版的基础上做了一下修正评论没有提交正文的问题特价商品的调用连接问题去掉了一个后门补了SQL注入补了一个过滤漏洞浮动价不能删除的问题不能够搜索问题收藏时放入购物车时出错点放入购物车弹出2个窗口修正主题添加问题商家注册页导航连接问题销售排行不能显示更多问题热点商品不能显示更多问题增加了服务器探测 增加了空间使用查看 增加了在线文件编辑增加了后台管理里两处全选功能更新说明:后台的部分功能已经改过前台
0
$ python -m venv venv ... $ venv/bin/pip install -e pluggable -e plugin_a -e plugin_b ... Successfully installed pluggable-1.0.0 plugin-a-1.0.0 plugin-b-1.0.0 $ venv/bin/python pluggable/pluggable.py run from b run from a
通过正确配置 pyproject.toml 文件中的 Entry Points,可以成功注册多个 Pluggy 插件,并使它们协同工作。关键在于确保每个插件都有唯一的名称,并遵循 Pluggy 的插件注册规则。遵循这些步骤,可以构建可扩展且灵活的应用程序。
以上就是# 使用 Setuptools 注册多个 Pluggy 插件的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号