[Python-de] Dynamisch Module Nachladen wenn die Namen erst zur Laufzeit bekannt sind?

Bastian Venthur venthur at debian.org
Do Nov 15 13:57:17 UTC 2007


Hi Liste,


Was ist der eleganteste Weg um dynamisch Module aus einem Paket
nachzuladen wenn die Modulnamen erst zur Laufzeit feststehen?

Als uneleganteste Lösung könnte man bei Programmstart alle Module eines
Paketes laden (wobei zur Zeit der Programmierung die Namen noch nicht
feststehen), also sowas wie

  import paket.*                 oder
  from paket import *

was ja leider nicht geht.

Besser wäre wenn bei Nutzereingabe der string genommen wird und sowas wie

  from paket import eingabe

das könnte man mit exec sicher noch irgendwie machen, aber kennt jemand
ne elegantere Lösung?

Hintergrund ist eine Nutzanwendung in dem in einem Paket nur Module sind
die eine Klasse enthalten die alle von der selben Klasse abgeleitet
sind. Je nach Nutzereingabe soll die jeweilige Klasse geladen werden.
Sowas wie ein Plugin-System eben. Schön wäre es auch wenn man bei neuer
Eingabe das alte Modul wieder entladen könnte...


Schöne Grüße,

Bastian

-- 
Bastian Venthur                                      http://venthur.de
Debian Developer                                 venthur at debian org