谁能使用Yapsy plugin framework提供一个最小的工作示例?

最佳答案

这是一个非常简单的示例。它具有三个文件:

  • plugins \ plugin1.py-插件。它必须包含一个从IPlugin继承的类。
  • plugins \ plugin1.yapsy-plugin-有关插件的信息。
  • yapsy-example.py-主脚本。这只会加载它可以在“plugins”目录中找到的所有插件,并在它们上调用一个方法以证明它们可以工作。

  • 您可以将更多插件添加到plugins目录,此脚本将在所有插件周围循环。

    http://lateral.netmanagers.com.ar/weblog/posts/BB923.html (archived)还有另一个更复杂的示例。

    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
    

    10-07 19:24
    查看更多