Es geht um eine Art Plugin-System, wobei jedes Plugin aus einer Handvoll Dateien besteht, die der Einfachheit halber jeweils als Package organisiert sind. Es ergibt sich folgende Struktur:
Code: Alles auswählen
plugins
   - __init__.py(1)
   - plugindir1
       - __init__.py(2a)
       - irgendwelche Python-Dateien
   - plugindir2
       - __init__.py(2b)
       - irgendwelche Python-Dateien
In __init__.py(1) möchte ich jetzt automatisch alle Unterpakete importieren lassen. Dazu existiert folgender Code:
Code: Alles auswählen
import os
import imp
def register_plugins():
    # Pfad aus __file__ extrahieren
    path = os.path.abspath(os.path.split(__file__)[0])
    for name in os.listdir(path):
        # Wenn es ein Verzeichnis ist, prüfen ob es ein Package ist
        # und dieses ggf. laden
        if os.path.isdir(os.path.join(path, name)):
            try:
                f, fname, desc = imp.find_module(name, [path])
            except ImportError:
                continue
            module = imp.load_module(name, f, fname, desc)
register_plugins()
Vielen Dank im Voraus
