Setzen und Abrufen von Umgebungsvariablen in Python

Um Umgebungsvariablen in Python zu setzen und abzurufen, können Sie einfach das Modul os verwenden:

import os# Set environment variablesos.environ = 'username'os.environ = 'secret'# Get environment variablesUSER = os.getenv('API_USER')PASSWORD = os.environ.get('API_PASSWORD')# Getting non-existent keysFOO = os.getenv('FOO') # NoneBAR = os.environ.get('BAR') # NoneBAZ = os.environ # KeyError: key does not exist.

Beachten Sie, dass die Verwendung von getenv() oder der Methode get() für einen Wörterbuchschlüssel None zurückgibt, wenn der Schlüssel nicht existiert. Im Beispiel mit BAZ wird jedoch ein KeyError ausgelöst, wenn Sie auf einen Schlüssel in einem Wörterbuch verweisen, der nicht existiert.

Umgebungsvariablen sind nützlich, wenn Sie vermeiden möchten, Zugangsdaten oder andere Variablen fest in den Code zu codieren. Zum Beispiel müssen Sie vielleicht API-Zugangsdaten für einen E-Mail-Dienstanbieter übergeben, um E-Mail-Benachrichtigungen zu senden, aber Sie möchten nicht, dass diese Zugangsdaten in Ihrem Code-Repository gespeichert werden. Oder vielleicht muss Ihr Code in Ihrer Entwicklungs-, Staging- und Produktionsumgebung etwas anders funktionieren. In diesem Fall könnten Sie eine Umgebungsvariable übergeben, um Ihrer Anwendung mitzuteilen, in welcher Umgebung sie ausgeführt wird. Dies sind typische Anwendungsfälle für Umgebungsvariablen.

Lokale Umgebungsvariablen speichern

Sie sollten Ihren Python-Code so schreiben, dass er in der Lage ist, auf Umgebungsvariablen aus der Umgebung zuzugreifen, in der er läuft. Dies kann entweder Ihre lokale virtuelle Umgebung sein, die Sie für die Entwicklung verwenden, oder ein Dienst, auf dem Sie ihn hosten. Ein nützliches Paket, das diesen Prozess vereinfacht, ist Python Decouple.

Installieren Sie zunächst Python Decouple in Ihrer lokalen Python-Umgebung.

$ pip install python-decouple

Nach der Installation erstellen Sie eine .env-Datei im Stammverzeichnis Ihres Projekts, die Sie dann öffnen können, um Ihre Umgebungsvariablen hinzuzufügen.

$ touch .env # create a new .env file$ nano .env # open the .env file in the nano text editor

Sie können dann Ihre Umgebungsvariablen wie folgt hinzufügen:

USER=alexKEY=hfy92kadHgkk29fahjsu3j922v9sjwaucahf

Speichern Sie dann die Datei (WriteOut) und beenden Sie nano. Ihre Umgebungsvariablen sind nun in Ihrer .env-Datei gespeichert. Wenn Sie git verwenden, denken Sie daran, .env zu Ihrer .gitignore-Datei hinzuzufügen, damit Sie diese Datei der Geheimnisse nicht an Ihr Code-Repository übergeben.

Nun, da Sie Ihre Umgebungsvariablen in einer .env-Datei gespeichert haben, können Sie in Ihrem Python-Code wie folgt darauf zugreifen:

from decouple import configAPI_USERNAME = config('USER')API_KEY = config('KEY')

Der Vorteil der obigen Vorgehensweise besteht darin, dass Sie Ihre Umgebungsvariablen mit einer beliebigen Methode oder Schnittstelle des Anbieters setzen können, wenn Sie Ihre Anwendung bei einem Cloud-Dienst bereitstellen, und Ihr Python-Code sollte immer noch in der Lage sein, auf sie zuzugreifen. Beachten Sie, dass es üblich ist, die Namen globaler Konstanten in Ihrem Code in Großbuchstaben zu schreiben.

Die meisten Anbieter von Cloud-Diensten verfügen über eine Befehlszeilenschnittstelle oder eine Weboberfläche, über die Sie die Umgebungsvariablen für Ihre Staging- oder Produktionsumgebung konfigurieren können. In diesen Fällen müssen Sie in der Dokumentation des Anbieters nachlesen, wie Sie die Umgebungsvariablen bei der Nutzung des Dienstes setzen.

Join the Able Developer Network

Wenn Ihnen dieser Beitrag gefallen hat, könnte Sie das Able Developer Network interessieren, ein neuer Ort für Entwickler, um zu bloggen und Jobs zu finden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.