[Python-de] Add-On's

Roland M. Kruggel rk.liste at bbf7.de
So Feb 17 19:16:50 UTC 2008


Am Samstag, 16. Februar 2008 schrieb Martin v. Löwis:
> > Soll so funktionieren wie die add-os in z.B. Firefox.
> > Hintergrund des ganzen ist, ich will meine Applikation
> > erweiterbar machen ohne das der user den Quellcode anfassen muss
> > oder Programmteile austauschbar halten.
>
> Mir ist immernoch nicht klar, was die Funktion dieser Plugins
> sein wird. Mit dieser Spezifikation ist das ganz einfach zu
> machen:
>
> def load_plugins(plugin_dir):
>      for file in glob.glob(plugin_dir+"/*.py"):
>          execfile(file)
>
> Bei Start des Programms einmal load_plugins("/var/lib/myplugins")
> aufrufen - fertig.

Supper!
Das funktioniert. Genau so etwas habe ich gesucht. Jetzt muss ich mich 
nur noch um das Interface kümmen. Danke

> Ob diese Plugins dann tatsächlich Deine Anwendung erweitern können,
> hängt stark von Deiner Anwendung ab. Wenn Du z.B. eine globale
> Variable config.DatabaseBackend hast, die durch
>
>    from pysqlite2 import dbapi2 as DatabaseBackend
>
> dann könnte das plugin die austauschen durch
>
>    import config
>    import psycopg2
>    config.DatabaseBackend = psycopg2
>
> Du müsstest dann natürlich im ganzen Programm immer brav
> config.DatabaseBackend benutzen, und nirgends pysqlite2 direkt
> importieren, also etwa

Yup.
So soll es auch sein.