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"