loading a plugin in python

22/07/2009 - 18:38 von Thomas Lehmann | Report spam
Hi!

Assume I have dynamically checked for a plugin:

<code>
filename = "plugin/dummy.py"
</code>

How can I load the simple plugin to get the instance?

<code>
class Dummy:
pass

def createInstance():
return Dummy()
</code>
 

Lesen sie die antworten

#1 Volker Grabsch
22/07/2009 - 20:01 | Warnen spam
Hallo Thomas,

4 Schritte für den Erfolg! :-)


Thomas Lehmann schrieb:
Assume I have dynamically checked for a plugin:



Schritt Nr. 1: Verwende die richtige Sprache.

filename = "plugin/dummy.py"

How can I load the simple plugin to get the instance?



Schritt Nr. 2: Verzichte auf die Dateiendung ".py".

modulename = "plugin/dummy"

class Dummy:
pass

def createInstance():
return Dummy()



Schritt Nr. 3: Werfe die sinnlose Funktion createInstance() heraus.

class Dummy:
pass

Plugin = Dummy

Schritt Nr. 4: Benutze __import__().

p = __import__(modulename).Plugin()

Variante: Gib deiner Plugin-Klasse gleich einen generischen Namen.

class Plugin:
pass


Gruß,

Volker

"Wenn du der Meinung bist, der andere sei ein Depp, dann überlass das
Antworten denjenigen, die nicht dieser Meinung sind."

Ähnliche fragen