dotenv in Python
Dieser Artikel erklärt die Bedeutung und Verwendung von dotenv
in Python.
Die Datei .env
ist eine individuelle Datei, die die oben beschriebenen Schlüsselwerte für alle Umgebungsvariablen enthält, die in Ihrer Anwendung benötigt werden. Die Datei wird lokal gespeichert, ohne in der Quellcodeverwaltung gespeichert zu werden, sodass Sie keine potenziell sensiblen Informationen gefährden.
Mit dotenv
wird das Schlüssel-Wert-Paar aus der .env
-Datei gelesen und der Umgebungsvariablen hinzugefügt. Wir können damit die Anwendungseinstellungen während der Entwicklungs- und Produktionsphase verwalten, indem wir das 12-Faktoren-Prinzip verwenden.
Die Umgebungsvariablen werden in einer UNIX-ähnlichen Datei im Python-Projektverzeichnis mit dem Modul env
erstellt.
Um mit der Datei .env
zu beginnen, müssen wir zunächst die Bibliothek dotenv
installieren.
pip install python-dotenv
Mit dotenv
kann unsere Anwendung die Konfiguration aus einer .env
-Datei laden, wenn diese vorhanden ist (zum Beispiel während der Entwicklung), während die umgebungsbasierte Konfiguration beibehalten wird.
Siehe das folgende Beispiel.
from dotenv import load_dotenv
config = load_dotenv(".env")
Im obigen Beispiel verwenden wir die Funktion load_dotenv()
. Die Funktion dotenv_values()
funktioniert ähnlich wie load_dotenv
. Es gibt ein Dictionary mit Werten zurück, die aus der Umgebung geparst wurden.
Zum Beispiel,
from dotenv import dotenv_values
config = dotenv_values(".env")
Wir können die Umgebungsvariablen auch aus einem Netzwerk statt aus einem Dateisystem laden. Dazu können wir die Funktion StringIO()
aus dem Paket io
verwenden, um ein Stream-Objekt zu erstellen.
Siehe den folgenden Code.
from io import StringIO
from dotenv import load_dotenv
config = StringIO("USER=abc\nEMAIL=abc@example.org")
load_dotenv(stream=config)
Wir können auch die CLI-Schnittstelle dotenv
verwenden, um die Datei .env
zu manipulieren, ohne sie manuell zu öffnen.
Siehe die Befehle unten.
pip install "python-dotenv[cli]"
dotenv set USER abc
dotenv set EMAIL abc@example.org
dotenv run -- python abc.py