Python plugins
This is www.programmierecke.net, section howto, feedback to: segler_alex AT web DOT de
Download the files below all in one.
main.py
import imp
import pkgutil
import os
import sys
from plugins.interface import PluginInterface
plugin_path = "plugins/"
#for loader,name,ispkg in pkgutil.iter_modules(plugin_path):
for name in ["plugin1","plugin2"]:
print name
file, pathname, desc = imp.find_module(name, [plugin_path,])
module = imp.load_module(name, file, pathname, desc)
module.func1()
for i in PluginInterface.__subclasses__():
c = i()
c.func2()
plugins/interface.py
class PluginInterface(object):
def func1(self):
raise NotImplementedError
def func2(self):
raise NotImplementedError
plugins/plugin1.py
from plugins.interface import PluginInterface
class plugin1cl(PluginInterface):
def func1(self):
print "method1 of plugin 1"
def func2(self):
print "method2 of plugin 1"
def func1():
print "func1 of plugin 1"
plugins/plugin2.py
from plugins.interface import PluginInterface
class plugin2cl(PluginInterface):
def func1(self):
print "method1 of plugin 2"
def func2(self):
print "method2 of plugin 2"
def func1():
print "func1 of plugin 2"