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” ;-)