Seite 1 von 1
Python Test/Debug - error - relative imports
Verfasst: Sonntag 19. Februar 2023, 13:07
von efix
Hallo Leute,
kann mir jemand vielleicht einen Typ geben wie ich das Problem mit den relativen Imports am einfachsten löse...
Ich kann die Datei nicht debuggen und meine Tests ausführen weil er dann immer wegen den relative imports meckert.
Viele Grüße
Re: Python Test/Debug - error - relative imports
Verfasst: Sonntag 19. Februar 2023, 13:12
von sparrow
Dafür brauchen wir den entsprechenden Code des Imports, die Datenstruktur des Projektes und was du tust, wenn der Fehler auftritt.
Re: Python Test/Debug - error - relative imports
Verfasst: Sonntag 19. Februar 2023, 13:33
von efix
Bin leider gerade unterwegs.
Ich möchte ein Teil meines Django Projekts Testen und die Datei importiert ein Model.
Ich importiere das Model mit:
from ..models import KlasseX
Ich muss die Datenbank noch mocken aber das Problem mit den Imports werde ich sowieso immer wieder haben.
Re: Python Test/Debug - error - relative imports
Verfasst: Sonntag 19. Februar 2023, 13:41
von efix
Ich glaub das einfachste ist eine .env Datei
Und dann ./ als Pythonpath
Re: Python Test/Debug - error - relative imports
Verfasst: Sonntag 19. Februar 2023, 14:22
von sparrow
Was meinst du mit testen? UnitTests? Dafür hat Django ein entsprechendes Framework.
Wenn du die interaktivr Konsole nutzen willst: nimm die von Django.
Re: Python Test/Debug - error - relative imports
Verfasst: Sonntag 19. Februar 2023, 18:45
von efix
Also ich habe folgende Projekt-Struktur
Projekt:
myprojekt:
myapp:
services:
service.py
admin.py
...
myprojekt:
static:
templates:
manage.py
tests:
test_service.py
.env
…
Der import in test_service sieht so aus:
Code: Alles auswählen
from ..myproject.myapp.services.evaluate import BlaBlubService
Die .env:
Code: Alles auswählen
PYTHONPATH="./"
DJANGO_SETTINGS_MODULE="myproject.myproject.settings"
und die __init__.py von tests so:
Re: Python Test/Debug - error - relative imports
Verfasst: Sonntag 19. Februar 2023, 19:16
von sparrow
Die Ordnerstrutkur ergibt keinen Sinn.
Das ist das Problem, wenn man sich irgendwas audenkt, statt das zu nehmen, was das Problem erzeugt.
Warum gibt es 2x das Verzeichnis myprojekt?
Re: Python Test/Debug - error - relative imports
Verfasst: Donnerstag 23. Februar 2023, 21:09
von efix
Ja die Ordner Struktur ist nicht die beste. Die habe ich über commando Zeile von Django erstellt...
Könnte man ändern. Ich habe übrigens das Problem gelöst... eine env. Datei behebt zwar das Import Problem aber nicht die Django Abhängigkeiten...
Wie auch immer. Ich mach das jetzt über Django test und dann sag ich dem Debugger was er ausführen soll...
Trotzdem Danke für die Antwort
Re: Python Test/Debug - error - relative imports
Verfasst: Donnerstag 23. Februar 2023, 22:10
von sparrow
@efix:Das was keinen Sinn macht, ist nicht die Ordnerstruktur an sich - sondern wie du sie hier wiedergegeben hast. Da heißen zwei Ordner "myprojekt". Deshalb ist es immer sinnvoll zu zeigen, was tatsächlich da ist, statt etwas "das irgendwie genauso, naja fast, oh, ich hab mich vertippt".
Den Rest der Fragen hast du ja leider unbeantwortet gelassen.
Wie gesagt: Entweder führt man mit python manage.py test entsprechende Unittests aus oder man verwenden die Interaktive Shell von Django. Da hat man dann auch keine Probleme mit Abhängigkeiten - denn wenn Django läuft, dann läuft auch die interaktive Shell.
Re: Python Test/Debug - error - relative imports
Verfasst: Freitag 24. Februar 2023, 00:52
von grubenfox
efix hat geschrieben: ↑Sonntag 19. Februar 2023, 18:45
Also ich habe folgende Projekt-Struktur
Projekt:
myprojekt:
myapp:
services:
service.py
admin.py
...
myprojekt:
static:
templates:
manage.py
tests:
test_service.py
.env
…
Wenn Einrückungen relevant sind, sowohl bei Programmcode, aber
auch bei Ordnerstrukturen, dann bitte immer den Code Button
</> nutzen