variable DJANGO_SETTINGS_MODULE is undefined

Neben Python im Allgemeinen hat insbesondere das Django-Framework mein Interesse geweckt. Für den Einstieg ist neben der allgemeinen Django-Dokumentation auch das frei verfügbare Django Book empfehlenswert.

Problem

Beim Durcharbeiten des Django Buchs kommt es im Kapitel 4 – Templates beim Code zum Thema “Using the Template System” evtl. zu folgender Fehlermeldung:

ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined

wenn beim Testen der Beispiele die “normale” Python-Shell genutzt wurde.

Lösung

Begibt man sich mit der Linux-Bash in das Verzeichnis des aktuellen Django-Projektes und führt folgenden Befehl aus:

export DJANGO_SETTINGS_MODULE=settings

ist das Problem behoben und das Python-Skript sollte auch in der Python-Shell (interaktiver Modus) fehlerfrei ausgeführt werden.

Vermeiden lässt sich der Fehler auch dadurch, dass man Pythons interaktiven Modus nicht durch Eingabe des Befehls

python

sondern durch

python manage.py shell

startet. Dann werden alle Django-Umgebungsvariablen direkt richtig eingebunden.

Quelle

Und hier wird es dann ein wenig peinlich: Liest man im Python-Book nur ein paar Zeilen weiter, wird genau dieser Umstand in “A special Python prompt” erklärt. Manchmal sollte man (ich) also Ruhe bewahren und ein wenig weiter lesen, bevor man “wie wild am Fehler suchen fängt” ;-)