Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Umgebungsvariablen (Env Vars): Eine Einführung

Python-Umgebungsvariablen (Env Vars): Eine Einführung

王林
王林Original
2024-08-23 06:03:01814Durchsuche

Python-Entwickler arbeiten oft mit Daten, die niemand sonst sehen soll, wie API-Schlüssel, API-Geheimnisse, Datenbanknamen usw.

Programmierer speichern diese Geheimnisse unter anderem in Umgebungsvariablen. In diesem Artikel erfahren Sie alles, was Sie über die Verwendung von Umgebungsvariablen in Python wissen müssen. Wir zeigen Ihnen, wie Sie Python-Umgebungsvariablen festlegen, wie Sie sie erhalten und welche verschiedenen Möglichkeiten Sie haben, alle Ihre Geheimnisse zu schützen. Wir schließen mit einem Beispiel aus der Praxis ab, wie wir sie hier bei Vonage verwenden.

Verwenden Sie die folgenden Links, um im Artikel weiterzuspringen:

  • Was sind Umgebungsvariablen?
  • So verwenden Sie Umgebungsvariablen in Python
  • So erhalten Sie Python-Umgebungsvariablen
  • So legen Sie Python-Umgebungsvariablen fest
  • So speichern Sie Python-Umgebungsvariablen (5 Methoden)
  • Bonus: Verwendung von Umgebungsvariablen mit externen APIs

Was sind Umgebungsvariablen?

Umgebungsvariablen (manchmal auch „Env-Variablen“ genannt) sind Variablen, die Sie außerhalb Ihres Programms speichern und die dessen Ausführung beeinflussen können. Sie können beispielsweise Umgebungsvariablen festlegen, die den Schlüssel und das Geheimnis einer API enthalten. Ihr Programm könnte diese Variablen dann verwenden, wenn es eine Verbindung zur API herstellt.

Das Speichern Ihrer Geheimnisse in Ihrer Umgebung anstelle Ihres Quellcodes hat einige Vorteile:

  • Sicherheit: Umgebungsvariablen helfen Ihnen, sensible Daten wie API-Schlüssel und Passwörter zu schützen. Beispielsweise möchten Sie möglicherweise nicht, dass derjenige, der Ihren Quellcode herunterlädt, Zugriff auf einen von Ihnen verwendeten API-Schlüssel hat.
  • Konfigurationsverwaltung: Mit Umgebungsvariablen ist es einfach, Konfigurationseinstellungen zu speichern und zu verwalten.
  • Portabilität: Sie können Anwendungen ohne Codeänderungen an verschiedene Umgebungen anpassen. Wenn sich Ihr Code beispielsweise auf verschiedenen Betriebssystemen unterschiedlich verhält, können Sie dies mithilfe einer Umgebungsvariablen verwalten.
  • Testen und Debuggen: Entwickler können das Testen und Debuggen vereinfachen, indem sie Umgebungsvariablen anpassen, anstatt den Code zu ändern.

Im Wesentlichen ermöglichen Ihnen Umgebungsvariablen, das Verhalten Ihres Programms zu ändern, ohne das Programm selbst zu ändern.

Sie können Umgebungsvariablen in Ihrem Betriebssystem speichern, es gibt jedoch auch andere Möglichkeiten, sie zu verwenden, über die wir in Kürze mehr erfahren werden.

So verwenden Sie Umgebungsvariablen in Python

Um diesem Tutorial folgen zu können, muss Python auf Ihrem Computer installiert sein. Sie können Python installieren, indem Sie es von der offiziellen Python-Website herunterladen.

Sie erhalten und legen Umgebungsvariablen in Python mithilfe des integrierten Betriebssystemmoduls fest.

So erhalten Sie Python-Umgebungsvariablen

Sie können alle Umgebungsvariablen in Ihrem Programm anzeigen, indem Sie den folgenden Code in einer Python-Datei speichern und dann dieses Python-Programm ausführen:

Ihr Python-Interpreter sollte alle Umgebungsvariablen Ihres Betriebssystems ausdrucken, wenn er diesen Code ausführt. Sie können auf die verschiedenen Umgebungsvariablen in os.environ wie auf ein Python-Wörterbuch zugreifen. Hier sind zwei Möglichkeiten, Umgebungsvariablen mit Python abzurufen:

Die letzten beiden Zeilen in Ihrem Python-Code oben bewirken dasselbe: Beide erhalten die Umgebungsvariable USER von Ihrem Betriebssystem. Wenn Sie jedoch die erste Methode verwenden, löst Python eine Ausnahme aus, wenn die Variable nicht gefunden wird.

Eine gute Vorgehensweise ist die Verwendung von os.environ['MY_ENVIRONMENT_VARIABLE'], wenn die Umgebungsvariable für die Ausführung Ihrer Python-Anwendung erforderlich ist, und os.environ.get('MY_ENVIRONMENT_VARIABLE'), wenn sie optional ist.

So legen Sie Umgebungsvariablen fest

Um Umgebungsvariablen in Python festzulegen, können Sie sie wie ein Wörterbuch zum os.environ-Objekt hinzufügen. Allerdings sind nur Strings erlaubt, da diese direkt an die Shell übergeben werden, in der Ihr Interpreter läuft.

Um eine Umgebungsvariable zu aktualisieren, überschreiben Sie sie einfach auf genau die gleiche Weise:

So speichern Sie Python-Umgebungsvariablen (5 Methoden)

Es gibt verschiedene Gründe, warum Sie Umgebungsvariablen speichern möchten, daher gibt es auch verschiedene Möglichkeiten, sie zu speichern. Manchmal müssen Sie einfach etwas auf Ihrem lokalen Computer festlegen, während Sie in anderen Fällen Ihre Anwendung möglicherweise in der Produktion ausführen müssen – diese Anwendungsfälle erfordern unterschiedliche Ansätze!

Im Folgenden zeigen wir Ihnen fünf Möglichkeiten, Umgebungsvariablen für Python zu speichern:

  1. Betriebssystemspeicher
  2. Dateispeicherung
  3. Cloud-Speicher
  4. Universeller Secret Manager-Speicher
  5. CI/CD-Systemspeicher

Speichern Sie Umgebungsvariablen auf Ihrem Betriebssystem

Manchmal möchten Sie keine Umgebungsvariable über Python erstellen, wenn Sie nur schnell etwas festlegen möchten. Glücklicherweise kann dies über die Befehlszeile erfolgen. Die Beispiele, die ich hier gebe, funktionieren für Unix-ähnliche Systeme (Mac, Linux usw.), aber wenn Sie Windows verwenden, können Sie in diesem Tutorial lernen, wie Sie Umgebungsvariablen abrufen und festlegen.

Im vorherigen Beispiel war USER eine von Ihrem Betriebssystem festgelegte Umgebungsvariable, die angibt, wer Ihren Computer verwendet. Obwohl Ihr Betriebssystem diese Variable automatisch erstellt, können Sie auch Ihre eigenen Umgebungsvariablen erstellen.

Sie können alle Umgebungsvariablen von Ihrer Befehlszeile aus sehen, indem Sie eine Befehlszeile öffnen und Folgendes eingeben (auf einem Unix-ähnlichen System):

Exportieren

Dadurch erhalten Sie eine Liste aller Umgebungsvariablen, auf die Ihre Befehlszeilen-Shell Zugriff hat.

So erstellen Sie eine Umgebungsvariable in Ihrer Befehlszeile:

VONAGE_API=your_api exportieren

Dadurch wird eine Variable namens VONAGE_API erstellt und ihr Wert auf your_api gesetzt. Sie können den Wert einer beliebigen Variablen wie folgt drucken:

echo $VONAGE_API

Wenn Sie den obigen Code ausführen, sehen Sie your_api als Ausgabe.

Speichern Sie Umgebungsvariablen in Dateien

Wenn Sie über Ihr Terminal/Ihre Befehlszeile eine neue Umgebungsvariable erstellen, ist diese nur für diese Sitzung vorhanden. Wenn Sie Ihr Terminal schließen, ist die Umgebungsvariable nicht mehr vorhanden. Beim Programmieren möchten Sie häufig, dass Ihre Umgebungsvariablen bestehen bleiben, damit sie jedes Mal verwendet werden können, wenn Sie Ihren Code ausführen. Eine Möglichkeit, dies zu erreichen, besteht darin, sie in einer Datei zu speichern: zum Beispiel einer .env-Datei.

Lassen Sie uns ein Beispielprojekt erstellen, um zu demonstrieren, wie eine .env-Datei zum Speichern von Umgebungsvariablen verwendet wird.

Erstellen Sie zunächst mit Ihrem Terminal einen neuen Ordner für dieses Tutorial, wechseln Sie dorthin und erstellen Sie darin eine .env-Datei:

mkdir env_variables_tutorial cd env_variables_tutorial touch .env

Fügen Sie diese Zeile zu Ihrer .env-Datei hinzu:

VONAGE_API=your_api

python3 -m venv venv . ./venv/bin/activate

Jetzt befinden wir uns in einer virtuellen Python-Umgebung und können das benötigte Paket installieren.

pip install python-dotenv

Jetzt können wir das Modul dotenv aus diesem Paket verwenden, um Umgebungsvariablen aus der .env-Datei in die Umgebung zu laden, auf die Python mit dem Modul os zugreifen kann. Erstellen Sie eine Python-Datei mit folgendem Inhalt:

Die Funktion „load_dotenv“ bringt Umgebungsvariablen aus der .env-Datei in os.environ, die dann wie alle anderen von Ihrem Betriebssystem festgelegten Umgebungsvariablen verwendet werden können.

So speichern Sie Umgebungsvariablen in der Cloud

Wenn Sie Software für die Produktion erstellen, werden Sie diese wahrscheinlich nicht auf Ihrem Computer ausführen. Stattdessen werden Sie Ihren Code höchstwahrscheinlich auf einem Server ausführen.

Das bedeutet, dass Sie wissen müssen, wie Sie Umgebungsvariablen überall dort festlegen und abrufen, wo Sie Ihren Code in der Produktion ausführen.

Hier ist eine Liste der Cloud-Anbieter und wo Sie weitere Informationen zum Umgang mit Umgebungsvariablen erhalten können:

  • AWS
  • Azure Apps
  • Azure-Funktionen
  • Google Cloud-Funktionen
  • Heroku
  • Docker-Datei
  • Docker Run

Speichern Sie Umgebungsvariablen in CI/CD-Systemen

Wenn Sie cloudbasierte CI/CD-Systeme wie GitHub Actions, CircleCI, Travis oder Jenkins verwenden, können Sie auch Umgebungsvariablen in deren Systemen speichern.

Wenn Sie GitHub für Ihr Projekt verwenden, können Sie Umgebungsvariablen in den Einstellungen für Ihr Repo speichern, indem Sie zur Registerkarte „Einstellungen“ navigieren und API-Schlüssel usw. in der Einstellung „Geheimnisse und Variablen“ unter „Sicherheit“ festlegen ".

Python Environment Variables (Env Vars): A Primer

Hier können Sie ein neues Repository-Geheimnis erstellen, indem Sie auf die Option klicken und Werte festlegen. Dies ist jetzt in Ihren GitHub Actions-Läufen verfügbar.

Python Environment Variables (Env Vars): A Primer

Es gibt viele Informationen zum Einrichten von Umgebungsvariablen mit GitHub Actions sowie CircleCI, Travis und Jenkins sowie Informationen für andere Anbieter.

Speichern Sie Umgebungsvariablen mit einem Universal Secrets Manager

Das Speichern Ihrer Geheimnisse in einer .env-Datei behält Ihre Umgebungsvariablen bei, es treten jedoch einige Probleme auf.

Angenommen, Sie sind in einem Team mit zehn Personen. Jeder verfolgt seine Geheimnisse in .env-Dateien und eines der Geheimnisse ändert sich (sagen wir, Sie erhalten einen neuen API-Schlüssel). In diesem Fall müssen alle zehn Personen ihre .env-Datei aktualisieren, was nicht sehr effizient ist.

Oder was wäre, wenn Sie sich entscheiden würden, von Heroku zu AWS zu wechseln? In diesem Fall müssen Sie lernen, mit Geheimnissen auf einer neuen Plattform umzugehen, was zusätzliche Arbeit erfordert.

Um diese Probleme zu lösen, verwenden einige Programmierer einen universellen Secrets-Manager wie Doppler. Mit einem universellen Secrets-Manager können Sie Ihre Geheimnisse an einem Ort speichern, sodass jeder in Ihrem Team darauf zugreifen kann.

Python Environment Variables (Env Vars): A Primer

Mit einem Universal Secrets Manager sind Ihre Geheimnisse unabhängig von Ihrem lokalen Computer oder einem Cloud-Anbieter, sodass Sie sie immer dabei haben können, egal wo Sie Ihren Code ausführen.

Bonus: Verwendung von Umgebungsvariablen mit externen APIs

Wenn Sie das Beispielprojekt oder Beispielcode-Snippets einer externen API verwenden, stellt der Eigentümer/Betreuer manchmal Tools zur Verfügung, um die Verwendung zu vereinfachen. Oft müssen Sie Umgebungsvariablen verwenden, um die Tools optimal einzurichten.

Hier bei Vonage nutzen wir Umgebungsvariablen in unseren Python-Codebeispielen zum Senden von SMS, zum Tätigen von Telefonanrufen, zum Senden von Bestätigungscodes, zum Überprüfen von Betrugswerten und vielem mehr.

Angenommen, Sie möchten die Number Insight API von Vonage verwenden, um Informationen zu einigen Telefonnummern zu erhalten. In diesem Fall möchten Sie möglicherweise ein Codebeispiel wie dieses verwenden, um die Dinge in Python schnell zum Laufen zu bringen.

Um diesen Beispielcode zu verwenden, erstellen Sie zunächst ein Vonage-Konto (keine Sorge, es ist kostenlos!), um einen API-Schlüssel und ein Geheimnis zur Authentifizierung Ihrer API-Aufrufe zu erhalten.

Klonen Sie als Nächstes das Repo unter https://github.com/Vonage/vonage-python-code-snippets/. Sobald dies erledigt ist, erstellen Sie eine neue virtuelle Python-Umgebung und installieren Sie die erforderlichen Abhängigkeiten mit

Sie sollten Informationen über die von Ihnen eingegebene Telefonnummer sehen, was bedeutet, dass Sie die Number Insight API von Vonage verwendet haben, um die Telefonnummer aus Ihren Umgebungsvariablen zu ermitteln, ohne die Python-Datei selbst überhaupt bearbeiten zu müssen! Dies ist ein großer Vorteil der Verwendung von Umgebungsvariablen.

Deaktivieren Sie #, wenn die virtuelle Umgebung von früher noch aktiv ist. python3 -m venv venv . ./venv/bin/activate pip install -r require.txt

Benennen Sie abschließend die Datei .env.dist in .env um, fügen Sie Ihren API-Schlüssel und Ihr Geheimnis zur Datei hinzu und ändern Sie den Wert für INSIGHT_NUMBER in die Nummer, nach der Sie suchen möchten. Jetzt können Sie den Code mit

ausführen

python number-insight/ni-basic.py

Sie sollten Informationen über die von Ihnen eingegebene Telefonnummer sehen, was bedeutet, dass Sie die Number Insight API von Vonage verwendet haben, um die Telefonnummer aus Ihren Umgebungsvariablen zu ermitteln, ohne die Python-Datei selbst überhaupt bearbeiten zu müssen! Dies ist ein großer Vorteil der Verwendung von Umgebungsvariablen.

Letzte Gedanken

Das Abrufen und Festlegen von Umgebungsvariablen ist ein wesentlicher Bestandteil der Erstellung von Produktionssoftware. Wenn Sie dieses Tutorial abgeschlossen haben, wissen Sie nun, wie Sie Umgebungsvariablen mit Python abrufen und festlegen.

Sie verstehen jetzt auch Ihre verschiedenen Optionen zum Speichern Ihrer Geheimnisse: vorübergehendes Festlegen über Ihr Betriebssystem, Speichern in einer .env-Datei, Speichern in der Cloud und Verwenden eines universellen Geheimnismanagers. Welche Methode Sie verwenden, hängt von den Umständen des Projekts ab, an dem Sie arbeiten. Wenn Sie mehr lesen möchten, finden Sie in diesem Beitrag zur Verwendung privater Schlüssel in Umgebungsvariablen weitere Informationen.

Wenn Sie mit der Nutzung von Vonage-APIs beginnen möchten, können Sie sich für ein kostenloses Entwicklerkonto anmelden (mit kostenlosen Credits!). Wenn Sie Fragen zu diesem Tutorial haben, können Sie sich gerne über unseren Vonage Community Slack an uns wenden und fragen uns dort drüben oder indem Sie uns eine Nachricht auf X senden, früher bekannt als Twitter.

Jetzt können Sie versuchen, Umgebungsvariablen in Ihren eigenen Python-Projekten zu verwenden!

Das obige ist der detaillierte Inhalt vonPython-Umgebungsvariablen (Env Vars): Eine Einführung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn