Frage Wie greife ich von Python auf Umgebungsvariablen zu?


Ich setze eine Umgebungsvariable, auf die ich in meiner Python-Anwendung zugreifen möchte. Wie bekomme ich diesen Wert?


1274
2018-02-05 13:03


Ursprung


Antworten:


Auf Umgebungsvariablen wird zugegriffen os.environ

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

Oder Sie sehen eine Liste aller Umgebungsvariablen mit:

os.environ

Manchmal müssen Sie vielleicht eine vollständige Liste sehen!

# using get will return `None` if a key is not present rather than raise a `KeyError`
print(os.environ.get('KEY_THAT_MIGHT_EXIST'))

# os.getenv is equivalent, and can also give a default value instead of `None`
print(os.getenv('KEY_THAT_MIGHT_EXIST', default_value))

Python-Standardinstallation unter Windows ist C:\Python. Wenn Sie beim Ausführen von Python herausfinden möchten, können Sie Folgendes tun:

import sys
print(sys.prefix)

1944
2018-02-05 13:18



Um zu überprüfen, ob der Schlüssel existiert True/False)

"HOME" in os.environ

oder (entfernt von Python 3.x)

os.environ.has_key("HOME")

Sie können auch verwenden get() wenn der Schlüssel gedruckt wird; nützlich, wenn Sie einen Standard verwenden möchten.     (für Python 2.7.3)

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

woher /home/username/ ist der Standardwert


130
2017-07-12 08:14



Die ursprüngliche Frage (erster Teil) lautete: "Wie überprüfe ich Umgebungsvariablen in Python?"

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

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

33
2018-03-29 13:58



Sie können auf die Umgebungsvariablen mit zugreifen

import os
print os.environ

Versuchen Sie, den Inhalt der Umgebungsvariablen PYTHONPATH oder PYTHONHOME zu sehen, vielleicht wird dies für Ihre zweite Frage hilfreich sein. Sie sollten es jedoch klären.


21
2018-02-05 13:07



Wie für die Umgebungsvariablen:

import os
print os.environ["HOME"]

Ich fürchte, du musst deinen zweiten Punkt ein bisschen mehr ausarbeiten, bevor eine vernünftige Antwort möglich ist.


13
2018-02-05 13:07



import os
for a in os.environ:
    print('Var: ', a, 'Value: ', os.getenv(a))
print("all done")

Dadurch werden alle Umgebungsvariablen zusammen mit ihren Werten gedruckt.


9
2018-03-28 15:46



In Python 3:

#!/usr/bin/python3
import os
for param in os.environ.keys():
    print("%s: %s " % (param, os.environ[param]))

6
2018-02-21 11:16



Wenn Sie den Code in einem Produktions-Webanwendungscode verwenden möchten,
Verwenden Sie jedes Web-Framework wie Django / Flask, verwenden Sie Projekte wie envparseMit ihr können Sie den Wert als Ihren definierten Typ lesen.

from envparse import env
# will read WHITE_LIST=hello,world,hi to white_list = ["hello", "world", "hi"]
white_list = env.list("WHITE_LIST", default=[]) 
# Perfect for reading boolean
DEBUG = env.bool("DEBUG", default=False)

HINWEIS: Kennethreitz autoenv ist ein empfohlenes Tool zum Erstellen projektspezifischer Umgebungsvariablen, bitte beachten Sie, dass diejenigen, die verwenden autoenv bitte behalte die .env Datei privat (für die Öffentlichkeit nicht zugänglich)


6
2018-01-10 04:12



Hier ist eine einzeilige Option vorausgesetzt os importieren wurde getan:

for key in os.environ: print(key,':',os.environ[key])

oder mit Formatierung:

for key in os.environ: print('{:>30} {:<4} {:}'.format(key,':',os.environ[key]))

1
2018-03-27 07:34