Вопрос: Как получить доступ к переменным среды из Python?


Я установил переменную среды, которую хочу получить в моем приложении Python. Как получить это значение?


1230


источник


Ответы:


Доступ к переменным окружения осуществляется через os.environ

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

Или вы можете увидеть список всех переменных среды, используя:

os.environ

Как иногда вам может потребоваться полный список!

# 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 в Windows C:\Python, Если вы хотите узнать при запуске python, вы можете:

import sys
print(sys.prefix)

1877



Чтобы проверить, существует ли ключ (возвращает True/ False)

"HOME" in os.environ

или (удалено из python 3.x)

os.environ.has_key("HOME")

Вы также можете использовать get()при печати ключа; полезно, если вы хотите использовать значение по умолчанию.     (для python 2.7.3)

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

где /home/username/по умолчанию


129



Первоначальный вопрос (первая часть) - «как проверить переменные среды на Python».

Вот как проверить, установлен ли $ FOO:

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

32



You can access to the environment variables using

import os
print os.environ

Try to see the content of PYTHONPATH or PYTHONHOME environment variables, maybe this will be helpful for your second question. However you should clarify it.


20



As for the environment variables:

import os
print os.environ["HOME"]

I'm afraid you'd have to flesh out your second point a little bit more before a decent answer is possible.


11



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

That will print all of the environment variables along with their values.


9



In Python 3:

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

6



If you are planning to use the code in a production web application code,
using any web framework like Django/Flask, use projects like envparse, using it you can read the value as your defined type.

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)

NOTE: kennethreitz's autoenv is a recommended tool for making project specific environment variables, please note that those who are using autoenv please keep the .env file private (inaccessible to public)


6