Cum pentru a accesa variabila de mediu valori?

Am stabilit o variabilă de mediu pe care vreau să acces în aplicație Python. Cum a face I a lua această valoare?

Soluția

Variabilele de mediu sunt accesate prin os.environ

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

Sau puteți vedea o listă cu toate variabilele de mediu folosind:

os.environ

Ca uneori s-ar putea nevoie pentru a vedea o listă completă!

# 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 instalare implicită pe Windows este C:\Python. Dacă doriți pentru a afla în timp ce rulează python puteți face:

import sys
print(sys.prefix)
Comentarii (10)

Pentru a verifica dacă există cheia (returnează "Adevărat" sau "Fals")

'HOME' in os.environ

Puteți folosi, de asemenea, get() atunci când imprimarea cheie; util dacă doriți să utilizați un default.

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

unde /home/username/ este implicit

Comentarii (3)

Întrebarea inițială (prima parte) a fost "cum de a verifica variabilele de mediu în Python."

Aici's cum pentru a verifica dacă $FOO este setat:

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

Puteți avea acces la variabilele de mediu, folosind

import os
print os.environ

Încercați pentru a vedea conținutul de PYTHONPATH sau PYTHONHOME variabile de mediu, poate că acest lucru va fi util pentru a doua întrebare. Cu toate acestea, ar trebui să-l clarifice.

Comentarii (0)

Ca pentru variabilele de mediu:

import os
print os.environ["HOME"]

Am'm teamă că'd au a concretiza și în al doilea rând, un pic mai înainte un răspuns decent este posibil.

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

Care se va imprima toate variabilele de mediu, împreună cu valorile lor.

Comentarii (0)

De fapt, acesta poate fi făcut asta de aici:

import os

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

Sau pur și simplu:

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

Pentru a vizualiza valoarea din parametrul:

print(os.environ['HOME'])

Sau:

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

Pentru a seta valoarea:

os.environ['HOME'] = '/new/value'
Comentarii (4)

Dacă sunteți de planificare pentru a utiliza codul într-o producție codul de aplicație web, folosind orice cadru web ca Django/Balon, utilizarea de proiecte, cum ar fi envparse, folosind-o puteți citi valoarea definită tip.

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)

NOTĂ: kennethreitz's autoenv este un instrument recomandat pentru a face proiectul specifice variabilele de mediu, vă rugăm să rețineți că cei care folosesc autoenv vă rugăm să păstrați .env fișier privat (inaccesibil pentru public)

Comentarii (0)

Nu's, de asemenea, un număr mare de biblioteci. Envs de exemplu, vă va permite de a analiza obiectele din variabilele de mediu, care se rad. De exemplu:

from envs import env
env('SECRET_KEY') # 'your_secret_key_here'
env('SERVER_NAMES',var_type='list') #['your', 'list', 'here']
Comentarii (0)