Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Import von Modulen aus anderem Unterordner
Wie kann ich bei folgender Pfadstruktur:
py/
modules/
module.py
progs/
main.py
in der main.py das Modul “module” importieren? Bei einem normalem “import module” bekomme ich einen ModuleNotFoundError.
Ich habe es auch wie folgt probiert:
from sys import path
path.append(‘…/modules’)
import module
Da bekomme ich leider immer noch einen ModuleNotFoundError. Betriebssystem ist OS.
Es gibt mehrere Möglichkeinten
from ..modules import module
import ..modules.module
Alternativ machst du aus deinem “py” ein Paket. Dann könnest du
import py.modules.module
Es gibt auch init.py Dateien, die dir die Arbeit erleichtern können.
über die erste Möglichkeit:
from …modules import module
bekomme ich folgenden Fehler: ImportError: attempted relative import with no known parent package
die 2. Möglichkeit geht bei mir gar nicht. Da steht bei mir SyntaxError
Wie funktioniert das mit den init.py Dateien bzw. mit den erstellen von Paketen?
Falls du mehr Info brauchst, die Doku von Python gibt eine seh ausführliche Info: https://docs.python.org/3/reference/import.html
Habe meinen Fehler gefunden. Es funktioniert sowohl mit
from py.modules import module
als auch mit
from …modules import module
Man darf nur nicht das main.py Skript direkt ausführen sondern muss es bspw. durch ein weiteres Skript außerhalb des py Directory machen. Weiß jemand warum?
Wenn du
py.modules import module
benutzen möchtest muss das ganze als das “py” Paket irgendwo findbar sein.
Am einfachsten wäre es den PYTHONPATH anzupassen und den Ordner hinzufügen, wo sich “py” befindet.