有人知道python插件应用程序的简单基础吗?

有人知道python插件应用程序的简单基础吗?,python,plugins,Python,Plugins,我正在探索python,我想创建一个插件应用程序,我想使用python很简单,但是创建一个通用的起点应用程序会很好 更具体地说,它可以是一个file.py,读取XML或INI文件以获取插件的目录路径,然后将所有.py文件作为插件加载 有什么想法吗?我想这取决于你的“简单”程度,但是trac有一个很好的插件框架 由于您刚刚开始,我认为最好自己完成所有工作,以便您真正了解正在发生的事情。这不是火箭科学,实际上是一种有趣的学习体验 首先强制使用硬编码的插件路径。例如,~/.myapp/插件。在这里,假

我正在探索python,我想创建一个插件应用程序,我想使用python很简单,但是创建一个通用的起点应用程序会很好

更具体地说,它可以是一个file.py,读取XML或INI文件以获取插件的目录路径,然后将所有.py文件作为插件加载


有什么想法吗?

我想这取决于你的“简单”程度,但是trac有一个很好的插件框架


由于您刚刚开始,我认为最好自己完成所有工作,以便您真正了解正在发生的事情。这不是火箭科学,实际上是一种有趣的学习体验

首先强制使用硬编码的插件路径。例如,~/.myapp/插件。在这里,假设每个.py文件都是一个插件。要求该目录中的每个文件实现一个简单的接口,例如一个已知的命令,您可以调用该命令来创建该插件的实例

例如,一个插件可能看起来像:

# MyPlugin.py
from myapp.plugin import Plugin # a base class you define

def create():
    return MyPlugin()

class MyPlugin(Plugin):
    ...
这样,您就可以加载如下内容:

import imp, os.path
filename=os.path.split(pathname)[-1]
modulename = os.path.splitext(filename)[0]
try:
    module = imp.load_source(modulename, pathname)
    plugin = module.create()
except ImportError, e:
    print "Error importing plugin '%s': %s" % (filename, str(e))
您现在有一个插件类的实例正在运行,并且在局部变量
plugin
中有一个句柄

看到了吗?你不需要一个花哨的插件框架就可以开始了


这不是唯一的方法,也可能不是最好的方法。但一旦你得到了这样的工作,你可以敲定的细节,什么最适合你和你的应用程序

您能否更具体地说明“插件应用程序”的含义?