Puisque vous êtes débutant, je pense qu'il serait préférable de faire tout le travail vous-même si vous comprenez vraiment ce qui se passe. Ce n'est pas sorcier, et fait en fait une expérience d'apprentissage amusant IMO.
Commencez par forcer un chemin codé en dur vers les plugins. Par exemple, ~/.myapp/plugins. Dans là, supposons que chaque fichier .py est un plugin. Exiger que chaque fichier de ce répertoire implémente une interface simple telle qu'une commande connue que vous pouvez appeler pour créer une instance de ce plugin.
Par exemple, un plugin peut ressembler à:
# MyPlugin.py
from myapp.plugin import Plugin # a base class you define
def create():
return MyPlugin()
class MyPlugin(Plugin):
...
Avec cela, vous le charger avec quelque chose comme ceci:
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))
Vous avez maintenant une instance de fonctionnement de votre classe plug-in, et un handle à la variable locale plugin
.
Voir? Vous n'avez pas besoin d'un cadre de plugin pour démarrer.
Ce n'est pas la seule façon de le faire, et ce n'est probablement pas le meilleur moyen. Mais une fois que vous obtenez quelque chose comme ça fonctionne, vous pouvez définir les détails de ce qui fonctionne le mieux pour vous et votre application.
Pouvez-vous être plus précis quant à ce que vous entendez par "application plug-in"? – Brad