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