Yapsy 最小示例

23 投票
1 回答
13197 浏览
提问于 2025-04-16 13:51

有没有人能给个简单的例子,展示一下怎么用Yapsy 插件框架

1 个回答

46

这里有一个非常简单的例子。它包含三个文件:

  • plugins\plugin1.py - 这是一个插件。这个文件里必须有一个类,它要继承自IPlugin。
  • plugins\plugin1.yapsy-plugin - 这个文件里是关于插件的信息。
  • yapsy-example.py - 这是主脚本。它会加载“plugins”目录下所有能找到的插件,并调用它们的方法来证明它们能正常工作。

你可以在插件目录中添加更多的插件,这个脚本会一个一个地处理它们。

如果你想看一个更复杂的例子,可以去这里看看:http://lateral.netmanagers.com.ar/weblog/posts/BB923.html (存档)

yapsy-example.py

from yapsy.PluginManager import PluginManager

def main():   
    # Load the plugins from the plugin directory.
    manager = PluginManager()
    manager.setPluginPlaces(["plugins"])
    manager.collectPlugins()

    # Loop round the plugins and print their names.
    for plugin in manager.getAllPlugins():
        plugin.plugin_object.print_name()

if __name__ == "__main__":
    main()

plugins\plugin1.py

from yapsy.IPlugin import IPlugin

class PluginOne(IPlugin):
    def print_name(self):
        print "This is plugin 1"

plugins\plugin1.yapsy-plugin

[Core]
Name = Plugin 1
Module = plugin1

[Documentation]
Author = John Smith
Version = 0.1
Website = http://lotsofplugins.com
Description = My first plugin

撰写回答