it-swarm.com.de

Wie greife ich auf Umgebungsvariablenwerte zu?

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

1760
Amit Yadav

Auf Umgebungsvariablen wird über os.environ zugegriffen

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

Oder Sie können eine Liste aller Umgebungsvariablen anzeigen, indem Sie Folgendes verwenden:

os.environ

Wie manchmal müssen Sie möglicherweise 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, haben Sie folgende Möglichkeiten:

import sys
print(sys.prefix)
2656
Rod

So überprüfen Sie, ob der Schlüssel vorhanden ist (gibt True oder False zurück)

'HOME' in os.environ

Sie können beim Drucken der Taste auch get() verwenden. nützlich, wenn Sie eine Standardeinstellung verwenden möchten.

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

dabei ist /home/username/ die Standardeinstellung

197
lgriffiths

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

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

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

Sie können mit auf die Umgebungsvariablen zugreifen

import os
print os.environ

Versuchen Sie, den Inhalt der Umgebungsvariablen PYTHONPATH oder PYTHONHOME zu sehen. Vielleicht ist dies für Ihre zweite Frage hilfreich. Sie sollten es jedoch klarstellen.

35
andrei1089

Was die Umgebungsvariablen betrifft:

import os
print os.environ["HOME"]

Ich befürchte, Sie müssten Ihren zweiten Punkt noch etwas präzisieren, bevor eine vernünftige Antwort möglich ist.

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

Dadurch werden alle Umgebungsvariablen mit ihren Werten gedruckt.

20
Azorian

Eigentlich kann man das wegschaffen:

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'
13
britodfbr

Wenn Sie planen, den Code in einem Produktionswebanwendungscode zu verwenden,
Verwenden Sie mit einem beliebigen Webframework wie Django/Flask Projekte wie envparse , und lesen Sie den Wert als Ihren definierten Typ.

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: kennethreitzs autoenv ist ein empfohlenes Tool, um projektspezifische Umgebungsvariablen zu erstellen. Bitte beachten Sie, dass diejenigen, die autoenv verwenden, die .env -Datei privat halten (für die Öffentlichkeit nicht zugänglich).

13
I Am Batman

In Python 3:

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

Hier ist eine einzeilige Option unter der Annahme, dass import os ausgeführt wurde:

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]))
8
pudepied

Es gibt auch eine Reihe großartiger Bibliotheken. Envs ermöglicht es Ihnen beispielsweise, Objekte aus Ihren Umgebungsvariablen zu analysieren, was rad ist. Zum Beispiel:

from envs import env
env('SECRET_KEY') # 'your_secret_key_here'
env('SERVER_NAMES',var_type='list') #['your', 'list', 'here']
5
Peter Konneker

für os.environ.get:

try:  
   env_value = os.environ.get("key_maybe_not_exist")
except KeyError: 
   print("Not exist environment value for %s" % "key_maybe_not_exist")

oder:

if "key_maybe_not_exist" in os.environ:
    existed_env_value = os.environ["key_maybe_not_exist"]

für os.getenv:

existed_env_value = os.getenv("key_maybe_not_exist")

gleichwertig:

existed_env_value = os.getenv("key_maybe_not_exist", default=None)
4
crifan