【问题标题】:Yapsy minimal exampleYapsy 最小示例
【发布时间】:2011-03-16 23:39:40
【问题描述】:

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

【问题讨论】:

    标签: python plugins


    【解决方案1】:

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

    • plugins\plugin1.py - 插件。这必须包含一个继承自 IPlugin 的类。
    • plugins\plugin1.yapsy-plugin - 关于插件的信息。
    • yapsy-example.py - 主脚本。这只是加载它可以在“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
    

    【讨论】:

    • 嗯,这表明您的插件没有被发现。它们是否在包含 yapsy-example.py 的目录的 plugins\ 子目录中?你是从那个目录运行 yapsy-example.py 吗?
    • 要尝试的另一件事 - 通过将以下内容添加到 yapsy-example.py (在其他导入之后)来打开调试日志记录: import logging logging.basicConfig(level=logging.DEBUG) 这应该给你一些输出,这将有助于调试。
    • 我意识到我错过了from yapsy.IPlugin import IPlugin
    • 感谢这个很好的例子。我在这里找到了一个带有小示例代码的不错的教程:link
    • 我在activatePluginByName 的这个答案中没有看到提及,它出现在yapsy Getting Started docs 中。 activatePluginByName 是可选的还是只是缺少这个答案?
    猜你喜欢
    • 2019-09-08
    • 2016-04-18
    • 1970-01-01
    • 2021-08-19
    • 2014-12-12
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多