8.8 KiB
Umgebungsvariablen
/// tip | Tipp
Wenn Sie bereits wissen, was „Umgebungsvariablen“ sind und wie man sie verwendet, können Sie dies überspringen.
///
Eine Umgebungsvariable (auch bekannt als „env var“) 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, um Einstellungen der Anwendung zu handhaben, als Teil der Installation von Python usw.
Erstellen und Verwenden von Umgebungsvariablen
Sie können Umgebungsvariablen in der Shell (Terminal) erstellen und verwenden, ohne Python zu benötigen:
//// tab | Linux, macOS, Windows Bash
// Sie können eine Umgebungsvariable MY_NAME erstellen mit
$ export MY_NAME="Wade Wilson"
// Dann können Sie sie mit anderen Programmen verwenden, etwa
$ echo "Hello $MY_NAME"
Hello Wade Wilson
////
//// tab | Windows PowerShell
// Erstellen Sie eine Umgebungsvariable MY_NAME
$ $Env:MY_NAME = "Wade Wilson"
// Verwenden Sie sie mit anderen Programmen, etwa
$ echo "Hello $Env:MY_NAME"
Hello Wade Wilson
////
Umgebungsvariablen in Python lesen
Sie können auch Umgebungsvariablen außerhalb von Python erstellen, im Terminal (oder mit jeder anderen Methode) und sie dann in Python lesen.
Zum Beispiel könnten Sie eine Datei main.py
haben mit:
import os
name = os.getenv("MY_NAME", "World")
print(f"Hello {name} from Python")
/// tip | Tipp
Das zweite Argument von os.getenv()
ist der Defaultwert, der zurückgegeben wird.
Wenn er nicht angegeben wird, ist er standardmäßig None
. Hier geben wir "World"
als den zu verwendenden Defaultwert an.
///
Dann könnten Sie das Python-Programm aufrufen:
//// tab | Linux, macOS, Windows Bash
// Hier setzen wir die Umgebungsvariable noch nicht
$ python main.py
// Da wir die Umgebungsvariable nicht gesetzt haben, erhalten wir den Defaultwert
Hello World from Python
// Aber wenn wir zuerst eine Umgebungsvariable erstellen
$ export MY_NAME="Wade Wilson"
// Und dann das Programm erneut aufrufen
$ python main.py
// Jetzt kann es die Umgebungsvariable lesen
Hello Wade Wilson from Python
////
//// tab | Windows PowerShell
// Hier setzen wir die Umgebungsvariable noch nicht
$ python main.py
// Da wir die Umgebungsvariable nicht gesetzt haben, erhalten wir den Defaultwert
Hello World from Python
// Aber wenn wir zuerst eine Umgebungsvariable erstellen
$ $Env:MY_NAME = "Wade Wilson"
// Und dann das Programm erneut aufrufen
$ python main.py
// Jetzt kann es die Umgebungsvariable lesen
Hello Wade Wilson from Python
////
Da Umgebungsvariablen außerhalb des Codes gesetzt werden können, aber vom Code gelesen werden können und nicht mit den restlichen Dateien gespeichert (in git
committet) werden müssen, werden sie häufig für Konfigurationen oder Einstellungen verwendet.
Sie können auch eine Umgebungsvariable nur für einen spezifischen Programmauruf 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 Programmaufruf, in derselben Zeile:
// Erstellen Sie eine Umgebungsvariable MY_NAME in der Zeile für diesen Programmauruf
$ MY_NAME="Wade Wilson" python main.py
// Jetzt kann es die Umgebungsvariable lesen
Hello Wade Wilson from Python
// Die Umgebungsvariable existiert danach nicht mehr
$ python main.py
Hello World from Python
/// tip | Tipp
Sie können mehr darüber lesen auf The Twelve-Factor App: Config.
///
Typen und Validierung
Diese Umgebungsvariablen können nur Textstrings handhaben, da sie extern zu Python sind und kompatibel mit anderen Programmen und dem Rest des Systems (und sogar mit verschiedenen Betriebssystemen, wie Linux, Windows, macOS) sein müssen.
Das bedeutet, dass jeder Wert, der in Python von einer Umgebungsvariable gelesen wird, ein str
sein wird, und jede Konvertierung in einen anderen Typ oder jede Validierung muss im Code vorgenommen werden.
Sie werden mehr darüber lernen, wie man Umgebungsvariablen zur Handhabung von Anwendungseinstellungen verwendet, im Handbuch für fortgeschrittene Benutzer – Einstellungen und Umgebungsvariablen{.internal-link target=_blank}.
PATH
Umgebungsvariable
Es gibt eine spezielle Umgebungsvariable namens PATH
, die von den Betriebssystemen (Linux, macOS, Windows) verwendet wird, um Programme zu finden, die ausgeführt werden sollen.
Der Wert der Variable PATH
ist ein langer String, der aus Verzeichnissen besteht, die auf Linux und macOS durch einen Doppelpunkt :
und auf Windows durch ein Semikolon ;
getrennt sind.
Zum Beispiel könnte die PATH
-Umgebungsvariable so aussehen:
//// tab | Linux, macOS
/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
////
//// tab | Windows
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 PATH
-Umgebungsvariable aufgeführt sind.
Zum Beispiel, wenn Sie python
im Terminal eingeben, sucht das Betriebssystem nach einem Programm namens python
im ersten Verzeichnis in dieser Liste.
Wenn es es findet, wird es benutzt. Andernfalls sucht es weiter in den anderen Verzeichnissen.
Installation von Python und Aktualisierung des PATH
Wenn Sie Python installieren, könnten Sie gefragt werden, ob Sie die PATH
-Umgebungsvariable aktualisieren möchten.
//// tab | Linux, macOS
Angenommen, Sie installieren Python und es landet in einem Verzeichnis /opt/custompython/bin
.
Wenn Sie erlauben, die PATH
Umgebungsvariable zu aktualisieren, fügt der Installer /opt/custompython/bin
zur PATH
Umgebungsvariable hinzu.
Das könnte so aussehen:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/custompython/bin
Auf diese Weise, wenn Sie python
im Terminal eingeben, findet das System das Python-Programm in /opt/custompython/bin
(das letzte Verzeichnis) und verwendet dieses.
////
//// tab | Windows
Angenommen, Sie installieren Python und es landet in einem Verzeichnis C:\opt\custompython\bin
.
Wenn Sie erlauben, die PATH
Umgebungsvariable zu aktualisieren, fügt der Installer C:\opt\custompython\bin
zur PATH
Umgebungsvariable hinzu.
C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32;C:\opt\custompython\bin
Auf diese Weise, wenn Sie python
im Terminal eingeben, findet das System das Python-Programm in C:\opt\custompython\bin
(das letzte Verzeichnis) und verwendet dieses.
////
Also, wenn Sie tippen:
$ python
//// tab | Linux, macOS
Das System wird das python
Programm in /opt/custompython/bin
finden und es ausführen.
Es wäre ungefähr gleichbedeutend mit der Eingabe von:
$ /opt/custompython/bin/python
////
//// tab | Windows
Das System wird das python
Programm in C:\opt\custompython\bin\python
finden und es ausführen.
Es wäre ungefähr gleichbedeutend mit der Eingabe von:
$ C:\opt\custompython\bin\python
////
Diese Informationen werden nützlich sein, wenn Sie über Virtuelle Umgebungen{.internal-link target=_blank} lernen.
Fazit
Mit diesem Wissen sollten Sie ein grundlegendes Verständnis davon haben, was Umgebungsvariablen sind und wie man sie in Python verwendet.
Sie können auch mehr darüber in der Wikipedia zu Umgebungsvariablen lesen.
In vielen Fällen ist es nicht sehr offensichtlich, wie Umgebungsvariablen nützlich und sofort anwendbar sein könnten. Aber sie tauchen immer wieder in vielen verschiedenen Szenarien auf, wenn Sie entwickeln, deshalb ist es gut, darüber Bescheid zu wissen.
Zum Beispiel werden Sie diese Informationen im nächsten Abschnitt über Virtuelle Umgebungen benötigen.