Yapsy最小的例子

Ser*_*gio 21 python plugins

任何人都可以使用Yapsy插件框架提供最小的工作示例吗?

tho*_*att 45

这是一个非常简单的例子.它有三个文件:

  • 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()
Run Code Online (Sandbox Code Playgroud)

插件\ plugin1.py

from yapsy.IPlugin import IPlugin

class PluginOne(IPlugin):
    def print_name(self):
        print "This is plugin 1"
Run Code Online (Sandbox Code Playgroud)

插件\ plugin1.yapsy-插件

[Core]
Name = Plugin 1
Module = plugin1

[Documentation]
Author = John Smith
Version = 0.1
Website = http://lotsofplugins.com
Description = My first plugin
Run Code Online (Sandbox Code Playgroud)