Import von Modulen aus anderem Unterordner

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.