615 Stimmen

Wie macht man relative Importe in Python?

Stellen Sie sich diese Verzeichnisstruktur vor:

app/
   __init__.py
   sub1/
      __init__.py
      mod1.py
   sub2/
      __init__.py
      mod2.py

Ich kodiere mod1 und ich muss etwas importieren aus mod2 . Wie soll ich es machen?

Ich habe versucht from ..sub2 import mod2 aber ich erhalte die Meldung "Attempted relative import in non-package".

Ich habe gegoogelt, aber nur " sys.path Manipulations"-Hacks. Gibt es keinen sauberen Weg?


Bearbeiten: alle meine __init__.py sind derzeit leer

Edit2: Ich versuche, dies zu tun, weil sub2 Klassen enthält, die über Unterpakete geteilt werden ( sub1 , subX , usw.).

Edit3: Das Verhalten, das ich suche, ist das gleiche wie in PEP 366 (danke John B)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X