import aus anderem Ordner?

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
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Hi,

ich habe:

Code: Alles auswählen

A/
   bla.txt
   B/
        __init__.py
        foo.py
   C/
      __init__.py
      test.py


Im test.py :

Code: Alles auswählen

from ..B.foo import XYZ 
ValueError: attempted relative import beyond top-level package
Warum?
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

wie importierst Du denn test?

Das hier funktioniert einwandfrei:

Code: Alles auswählen

import A.B.test
Du brauchst natürlich A als übergreifendes Package.
Benutzeravatar
__blackjack__
User
Beiträge: 14056
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

In `A/` fehlt eine `__init__.py` und wenn beispielsweise `test` ausgeführt werden soll dann mit ``python3 -m A.B.test``. Innerhalb von Packages führt man immer mit `-m` aus, nie irgendwelche *.py-Dateien direkt als wären es Programme.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Eigentlich ist es innerhalb eines Django projects und ich versuche aus der settings.py etwas in die views.py einer app zu importieren, aber da meckert er halt dementsprechend.
from django.conf import settings
soll es tun,

aber warum das mit dem anderen Weg nicht geklappt hat, verstehe ich nicht.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Wie ist denn Deine tatsächliche Verzeichnisstruktur? Aus welchem Modul importierst Du welches Modul?
Antworten