Wie kann ich in Python auf Umgebungsvariablen zugreifen?

Lesezeit: 4 Minuten

Benutzeravatar von Amit Yadav
Amit Yadav

Wie kann ich den Wert einer Umgebungsvariablen in Python abrufen?

Benutzeravatar von Rod
Stange

Der Zugriff auf Umgebungsvariablen erfolgt über os.environ:

import os
print(os.environ['HOME'])

So sehen Sie eine Liste aller Umgebungsvariablen:

print(os.environ)

Wenn ein Schlüssel nicht vorhanden ist, wird beim Versuch, darauf zuzugreifen, a ausgelöst KeyError. Um es zu vermeiden:

# Returns `None` if the key doesn't exist
print(os.environ.get('KEY_THAT_MIGHT_EXIST'))

# Returns `default_value` if the key doesn't exist
print(os.environ.get('KEY_THAT_MIGHT_EXIST', default_value))

# Returns `default_value` if the key doesn't exist
print(os.getenv('KEY_THAT_MIGHT_EXIST', default_value))

  • hallo rod, danke für deine effektive antwort bezüglich ‘default-installation’; effektiver, um es schnell zu verstehen, anstatt die Links durchzugehen. Das habe ich sehr geschätzt 🙂 aber zu meiner (1) Frage schauen Sie sich bitte den folgenden Befehls- und Ausgabeausschnitt an: >>> import os >>> print os.environ[‘PYTHONPATH’] Traceback (letzter Aufruf zuletzt): File ““, line 1, in File “C:\Python25\lib\os.py”, line 435, in Artikel erhalten self.data zurückgeben[key.upper()] KeyError: ‘PYTHONPATH’ >>> print os.environ.get(‘PYTHONPATH’) None >>> // PLZ wird fortgesetzt…//

    – Amit Yadav

    5. Februar 2011 um 14:47 Uhr


  • In einem 1. Weg wirft das Skript eine Ausnahme, während das 2. keine gibt. Gibt es also eine Möglichkeit, einen sinnvollen Wert zu erhalten, oder mache ich einen falschen Weg??? Amit.

    – Amit Yadav

    5. Februar 2011 um 14:49 Uhr

  • os.environ ist ein Wörterbuch. Der Versuch, auf einen Schlüssel zuzugreifen, der nicht im Wörterbuch vorhanden ist, löst einen KeyError aus. Die get-Methode gibt einfach None zurück, wenn der Schlüssel nicht existiert. Hast du PYTHONPATH eingestellt? Können Sie es mit einer Variablen wie PATH versuchen, die garantiert existiert? Gibt es einen sinnvollen Wert zurück?

    – Stab

    5. Februar 2011 um 19:21 Uhr

  • PYTHONPATH wird verwendet, um einen neuen Suchpfad zu Python (sys.path) von außerhalb von Python hinzuzufügen. Schau mal rein docs.python.org/using/cmdline.html#environment-variables

    – Stab

    7. Februar 2011 um 14:41 Uhr

  • .get() kann auch voreingestellt werden.

    – Gringo Suave

    21. September 2018 um 15:25 Uhr

Benutzeravatar von lgriffiths
lgriffiths

Um zu prüfen, ob der Schlüssel existiert (gibt zurück True oder False)

'HOME' in os.environ

Sie können auch verwenden get() beim Drucken des Schlüssels; nützlich, wenn Sie einen Standard verwenden möchten.

print(os.environ.get('HOME', '/home/username/'))

wo /home/username/ ist die Vorgabe

  • Welches ist besser, "HOME" in os.environ oder os.environ.get('HOME')?

    – Endolith

    3. Februar 2017 um 16:11 Uhr

  • @endolith Sie machen verschiedene Dinge. Der erste gibt True oder False zurück, während der zweite einen Wert zurückgibt, möglicherweise None.

    – Trenton

    13. Februar 2018 um 22:38 Uhr

  • @endolith, die richtige Frage wäre "HOME" in os.environ vs os.environ.get('HOME') is None. Wie Sie zuerst sehen können, ist es viel besser lesbar und bequemer damit zu arbeiten.

    – Konstantin Sekeresh

    16. Oktober 2019 um 13:43 Uhr

Benutzeravatar von britodfbr
britodfbr

Eigentlich kann man das so machen:

import os

for item, value in os.environ.items():
    print('{}: {}'.format(item, value))

Oder einfach:

for i, j in os.environ.items():
    print(i, j)

Zum Anzeigen des Wertes im Parameter:

print(os.environ['HOME'])

Oder:

print(os.environ.get('HOME'))

So stellen Sie den Wert ein:

os.environ['HOME'] = '/new/value'

  • Nein, diese Antwort fügt den vorhandenen Antworten wirklich nichts hinzu

    – Bart

    2. Mai 2018 um 10:06 Uhr

  • Dies sollte entfernt werden, es ist ein Duplikat anderer Antworten. str.format ist nur eine schicke Zugabe.

    – miike3459

    21. April 2019 um 16:46 Uhr

  • >>> import os, pprint; pprint.pprint(list(os.environ.items()))

    – noobninja

    10. Mai 2020 um 18:41 Uhr

  • Die erste Antwort mit lesbarer Ausgabe für die gesamte Umgebung, danke. Um die env im PyCharm-Debugger anzuzeigen, werte ich aus {k: v for k,v in sorted(os.environ.items())}

    – Noumenon

    4. August 2021 um 22:55 Uhr

  • es fügt hinzu, wie der Wert eingestellt wird

    – MC

    26. November 2021 um 10:21 Uhr

Benutzeravatar von Scott C. Wilson
Scott C. Wilson

So prüfen Sie, ob $FOO ist eingestellt:

try:  
   os.environ["FOO"]
except KeyError: 
   print "Please set the environment variable FOO"
   sys.exit(1)

Benutzeravatar von andrei1089
andrei1089

Mit können Sie auf die Umgebungsvariablen zugreifen

import os
print os.environ

Versuchen Sie, den Inhalt der Umgebungsvariablen PYTHONPATH oder PYTHONHOME anzuzeigen. Vielleicht hilft dir das bei deiner zweiten Frage weiter.

Benutzeravatar von Peter Mortensen
Peter Mortensen

Zu den Umgebungsvariablen:

import os
print os.environ["HOME"]

Benutzeravatar von Peter Mortensen
Peter Mortensen

Importieren Sie die os Modul:

import os

So erhalten Sie eine Umgebungsvariable:

os.environ.get('Env_var')

So legen Sie eine Umgebungsvariable fest:

# Set environment variables
os.environ['Env_var'] = 'Some Value'

1438930cookie-checkWie kann ich in Python auf Umgebungsvariablen zugreifen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy