Zum Inhalt springen

Umgebungsvariablen

Bevor wir uns in den Code stürzen, behandeln wir einige Grundlagen, die wir verstehen müssen, um im Allgemeinen mit Python (und Programmierung) arbeiten zu können. Sehen wir uns ein wenig über Umgebungsvariablen an.

Tipp

Wenn Sie bereits wissen, was "Umgebungsvariablen" sind und wie man sie verwendet, können Sie diesen Teil gerne überspringen.

Eine Umgebungsvariable (auch "Env Var" genannt) ist eine Variable, die außerhalb des Python-Codes im Betriebssystem lebt und von Ihrem Python-Code (oder auch von anderen Programmen) gelesen werden kann.

Umgebungsvariablen können nützlich sein für die Verwaltung von Anwendungseinstellungen, als Teil der Installation von Python usw.

Umgebungsvariablen erstellen und verwenden

Sie können Umgebungsvariablen in der Shell (Terminal) erstellen und verwenden, ohne Python zu benötigen.

// You could create an env var MY_NAME with
$ export MY_NAME="Wade Wilson"

// Then you could use it with other programs, like
$ echo "Hello $MY_NAME"

Hello Wade Wilson
// Create an env var MY_NAME
$ $Env:MY_NAME = "Wade Wilson"

// Use it with other programs, like
$ echo "Hello $Env:MY_NAME"

Hello Wade Wilson

Umgebungsvariablen in Python lesen

Sie können Umgebungsvariablen auch außerhalb von Python, im Terminal (oder mit jeder anderen Methode) erstellen und sie dann in Python lesen.

Zum Beispiel könnten Sie eine Datei main.py mit folgendem Inhalt haben

import os

name = os.getenv("MY_NAME", "World")
print(f"Hello {name} from Python")

Tipp

Das zweite Argument für os.getenv() ist der Standardwert, der zurückgegeben wird.

Wenn keiner angegeben ist, ist es standardmäßig None. Hier geben wir "World" als Standardwert an, der verwendet werden soll.

Dann könnten Sie dieses Python-Programm aufrufen

// Here we don't set the env var yet
$ python main.py

// As we didn't set the env var, we get the default value

Hello World from Python

// But if we create an environment variable first
$ export MY_NAME="Wade Wilson"

// And then call the program again
$ python main.py

// Now it can read the environment variable

Hello Wade Wilson from Python
// Here we don't set the env var yet
$ python main.py

// As we didn't set the env var, we get the default value

Hello World from Python

// But if we create an environment variable first
$ $Env:MY_NAME = "Wade Wilson"

// And then call the program again
$ python main.py

// Now it can read the environment variable

Hello Wade Wilson from Python

Da Umgebungsvariablen außerhalb des Codes gesetzt, aber vom Code gelesen werden können und nicht mit den restlichen Dateien (in git) gespeichert werden müssen, werden sie häufig für Konfigurationen oder Einstellungen verwendet.

Sie können auch eine Umgebungsvariable nur für eine spezifische Programmaufrufung erstellen, die nur für dieses Programm und nur für dessen Dauer verfügbar ist.

Um dies zu tun, erstellen Sie sie direkt vor dem Programm selbst, auf derselben Zeile.

// Create an env var MY_NAME in line for this program call
$ MY_NAME="Wade Wilson" python main.py

// Now it can read the environment variable

Hello Wade Wilson from Python

// The env var no longer exists afterwards
$ python main.py

Hello World from Python

Tipp

Sie können mehr darüber unter The Twelve-Factor App: Config lesen.

Typen und Validierung

Diese Umgebungsvariablen können nur Textzeichenketten verarbeiten, da sie extern zu Python sind und mit anderen Programmen und dem Rest des Systems (und sogar mit verschiedenen Betriebssystemen wie Linux, Windows, macOS) kompatibel sein müssen.

Das bedeutet, dass jeder Wert, der in Python aus einer Umgebungsvariablen gelesen wird, ein str sein wird und jede Umwandlung in einen anderen Typ oder jede Validierung im Code erfolgen muss.

PATH Umgebungsvariable

Es gibt eine spezielle Umgebungsvariable namens PATH, die vom Betriebssystem (Linux, macOS, Windows) verwendet wird, um Programme zum Ausführen zu finden.

Der Wert der Variablen PATH ist eine lange Zeichenkette, die aus Verzeichnissen besteht, die auf Linux und macOS durch einen Doppelpunkt : und unter Windows durch ein Semikolon ; getrennt sind.

Zum Beispiel könnte die Umgebungsvariable PATH so aussehen

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Das bedeutet, dass das System nach Programmen in den Verzeichnissen suchen sollte

  • /usr/local/bin
  • /usr/bin
  • /bin
  • /usr/sbin
  • /sbin
C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32

Das bedeutet, dass das System nach Programmen in den Verzeichnissen suchen sollte

  • C:\Program Files\Python312\Scripts
  • C:\Program Files\Python312
  • C:\Windows\System32

Wenn Sie einen Befehl im Terminal eingeben, sucht das Betriebssystem nach dem Programm in jedem dieser Verzeichnisse, die in der Umgebungsvariable PATH aufgeführt sind.

Wenn Sie zum Beispiel python im Terminal eingeben, sucht das Betriebssystem nach einem Programm namens python im ersten Verzeichnis dieser Liste.

Wenn es es findet, verwendet es es. Andernfalls sucht es weiter in den anderen Verzeichnissen.

Python installieren und den PATH aktualisieren

Wenn Sie Python installieren, werden Sie möglicherweise gefragt, ob Sie die Umgebungsvariable PATH aktualisieren möchten.

Nehmen wir an, Sie installieren Python und es landet in einem Verzeichnis /opt/custompython/bin.

Wenn Sie mit Ja antworten, um die Umgebungsvariable PATH zu aktualisieren, fügt der Installer /opt/custompython/bin zur Umgebungsvariable PATH hinzu.

Es könnte so aussehen.

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/custompython/bin

Auf diese Weise findet das System beim Eingeben von python im Terminal das Python-Programm in /opt/custompython/bin (dem letzten Verzeichnis) und verwendet dieses.

Nehmen wir an, Sie installieren Python und es landet in einem Verzeichnis C:\opt\custompython\bin.

Wenn Sie mit Ja antworten, um die Umgebungsvariable PATH zu aktualisieren, fügt der Installer C:\opt\custompython\bin zur Umgebungsvariable PATH hinzu.

C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32;C:\opt\custompython\bin

Auf diese Weise findet das System beim Eingeben von python im Terminal das Python-Programm in C:\opt\custompython\bin (dem letzten Verzeichnis) und verwendet dieses.

Auf diese Weise findet das System beim Eingeben von python im Terminal das Python-Programm in /opt/custompython/bin (dem letzten Verzeichnis) und verwendet dieses.

Wenn Sie also

$ python

Das System findet das python-Programm in /opt/custompython/bin und führt es aus.

Es wäre grob äquivalent zum Eingeben von

$ /opt/custompython/bin/python

Das System findet das python-Programm in C:\opt\custompython\bin\python und führt es aus.

Es wäre grob äquivalent zum Eingeben von

$ C:\opt\custompython\bin\python

Diese Informationen sind nützlich, wenn Sie mehr über Virtuelle Umgebungen erfahren.

Fazit

Damit sollten Sie ein grundlegendes Verständnis davon haben, was Umgebungsvariablen sind und wie man sie in Python verwendet.

Sie können mehr darüber auch in der Wikipedia für Umgebungsvariable lesen.

In vielen Fällen ist nicht sofort offensichtlich, wie Umgebungsvariablen nützlich und anwendbar sind. Aber sie tauchen bei der Entwicklung immer wieder in vielen verschiedenen Szenarien auf, daher ist es gut, sie zu kennen.

Zum Beispiel benötigen Sie diese Informationen im nächsten Abschnitt über Virtuelle Umgebungen.