Modul aus Unterordner importieren

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
Benutzeravatar
nexonic
User
Beiträge: 6
Registriert: Donnerstag 16. Oktober 2008, 22:47
Wohnort: Ja.
Kontaktdaten:

Donnerstag 16. Oktober 2008, 22:54

Hi,

ich hab mal gelesen, man kann Module aus Unterordner so importieren:

Code: Alles auswählen

import unterordner.modul
Bisher habe ich immer mit "sys.path.append()" die Unterordner in den Namensraum "importiert".

Jetzt wollte ich das aber auch mal mit diesem "import a.b" ausprobieren, funktioniert aber leider nicht:

Code: Alles auswählen

Traceback (most recent call last):
  File "./start.py", line 32, in <module>
    import main.editor
ImportError: No module named main.editor
Das kommt dabei zum Beispiel raus :(

Weiß jemand woran das liegt?

Gruss
N3X0NIC
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Donnerstag 16. Oktober 2008, 23:07

Entweder du fügst den Pfad in den sys.path und importierst einfach nur über den Modulnamen oder du erstellst eine __init__.py in deinem Ordner ^_^
Benutzeravatar
nexonic
User
Beiträge: 6
Registriert: Donnerstag 16. Oktober 2008, 22:47
Wohnort: Ja.
Kontaktdaten:

Donnerstag 16. Oktober 2008, 23:45

BlackVivi hat geschrieben:oder du erstellst eine __init__.py in deinem Ordner ^_^
Super, danke. Wieder was dazugelernt :)

Gruss
N3X0NIC
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Freitag 17. Oktober 2008, 00:33

Durch die __init__.py wird der Ordner selbst übringens zum Modul, du kannst dann zb von der __init__.py aus alle anderen Module verwalten.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 17. Oktober 2008, 12:58

str1442 hat geschrieben:Durch die __init__.py wird der Ordner selbst übringens zum Modul
Nicht Modul sondern Package.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten