Modularer Aufbau

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Vortec
User
Beiträge: 52
Registriert: Dienstag 10. Dezember 2002, 11:54

Guten Tag,

ich möchte meinem Projekt einen modularen Aufbau verpassen. Das heißt: Der User soll während der Laufzeit (selbstprogrammierte) Module laden / aktualisieren / entladen können. Dass ich dies mit OOP am besten löse, ist mir bewusst. Die Frage ist nur wie. Ich dachte da an einen Ordner "modules", in dem .py-Dateien mit einer bestimmten Klasse gelagert sind.
Ich bin am verzweifeln und bräuchte einen Denkanstoß. Kann mir jemand helfen?

Grüße,
Vortec
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi Vortec,

da wirst Du wohl das modul impbrauchen.


Gruß

Dookie
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Hallo!
Vortec hat geschrieben: Ich bin am verzweifeln und bräuchte einen Denkanstoß. Kann mir jemand helfen?
Laden und Aktualisieren müsste doch eigentlich mit import/reload gehen. Entladen? Weiß nicht.
Jan
Vortec
User
Beiträge: 52
Registriert: Dienstag 10. Dezember 2002, 11:54

Hallo nochmal,

zwei Fragen zu dem Modul "imp".

Frage 1:

Code: Alles auswählen

fp, pathname, description = imp.find_module("xtemplate")
imp.load_module("x", fp, pathname, description)
fp.close()
[b]bla = x.xtemplate()[/b]
Gibt mir:
NameError: name 'x' is not defined
Wieso? xtemplate.xtemplate() funktioniert auch nicht.

Frage 2:
Wie oben erläutert möchte ich eine Datei aus dem Ordner "modules" importieren.

Code: Alles auswählen

[b]fp, pathname, description = imp.find_module("testx", "modules")[/b]
imp.load_module("x", fp, pathname, description)
fp.close()
Gibt mir:
ImportError: No frozen submodule named modules.testx

:(
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

der 2. Parameter von findmodule ist eine Liste von Pfaden.

Code: Alles auswählen

fp, pathname, description = imp.find_module("testx", ["modules"])
Funktioniert bei mir.

Gruß

Dookie
Antworten