Seite 1 von 1

Import aus Sud-Directory findet eigene Importe nicht mehr

Verfasst: Sonntag 9. April 2023, 14:27
von ChristophCologne
Hallo zusammen,
ich bin recht neu in Python, daher vermutlich diese Anfängerfrage:

Ich habe mir diverse Login in Python Dateien in einem Unterordnen ausgegliedert. Die Dateien verweisen dabei teilweise aufeinander. So verweist sub/logic1.py z.B. auf subjektiver/logic2.py und importiert von Ihr Funktionen.

Nun möchte ich aus einem Oberordner Teile aus logic1.py verwenden und importiere dazu mit "from sub.logic1" die entsprechenden Funktionen.
Das Problem ist nun, dass wenn ich eine Funktion importiere, die auf eine andere Funktionen innerhalb des Sub-Ordners verweist, findet er diese nicht mehr.

Wie kann ich das lösen?

VG
Christoph

Re: Import aus Sud-Directory findet eigene Importe nicht mehr

Verfasst: Sonntag 9. April 2023, 16:01
von __blackjack__
@ChristophCologne: Die Beschreibung reicht nicht aus um zu verstehen was Du da machst. Funktionen verweisen nicht auf andere Funktionen und Funktionen sind nicht in Ordnern, sondern in Modulen organisiert.

Zeig ein konkretes Beispiel inklusive Fehlermeldung, damit klar ist was Du versuchst.

Re: Import aus Sud-Directory findet eigene Importe nicht mehr

Verfasst: Sonntag 9. April 2023, 18:09
von ChristophCologne
Ich habe im Ordner (Module) "module" die Datei "module.py" mit folgenden Quellcode:

Code: Alles auswählen

from include import includeFunction

def doSomething():
    print(f"doSomething")
    includeFunction()
    return

if __name__ == "__main__":
    doSomething()
Diese Verweist auf das Modul/Datei "include.py", welche im selben Ordner liegt:

Code: Alles auswählen

def includeFunction():
    print("includeFunction")
Rufe ich module.py direkt auf, funktioniert alles einwandfrei. Rufe ich jedoch, die Datei "main.py" auf, welche eine Ordnerebene höher liegt und folgenden Inhalt hat:

Code: Alles auswählen

from module.module import doSomething

print(f"das ist ein test")
doSomething()
Erhalte ich die Fehlermeldung:

Traceback (most recent call last):
File "/Users/christoph/Desktop/python/main.py", line 1, in <module>
from module.module import doSomething
File "/Users/christoph/Desktop/python/module/module.py", line 2, in <module>
from include import includeFunction
ModuleNotFoundError: No module named 'include'

Re: Import aus Sud-Directory findet eigene Importe nicht mehr

Verfasst: Sonntag 9. April 2023, 18:32
von sparrow
@ChristophCologne: Ein Modul ist in der Regel eine Python-Datei. Wenn man Module bündeln möchte, dann tut man das in Packages. Das sind Verzeichnisse.

Hast du einen Blick in die Dokumentation geworfen? Speziell was Module sind und wie Packages funktionieren?