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

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

Ответ 1

Доступ к переменным окружениям осуществляется через 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)

Ответ 2

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

'HOME' in os.environ

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

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

где /home/username/ является значением по умолчанию

Ответ 3

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

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

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

Ответ 4

Вы можете получить доступ к переменным среды, используя

import os
print os.environ

Попробуйте просмотреть содержимое переменных окружения PYTHONPATH или PYTHONHOME, возможно, это будет полезно для вашего второго вопроса. Однако вы должны уточнить это.

Ответ 5

Что касается переменных окружения:

import os
print os.environ["HOME"]

Я боюсь, что вам нужно будет еще раз добавить второй пункт, прежде чем появится достойный ответ.

Ответ 6

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

Это будет печатать все переменные среды вместе со своими значениями.

Ответ 7

Если вы планируете использовать код в коде веб-приложения для производства,
используя любую веб-инфраструктуру, такую ​​как Django/Flask, используйте такие проекты, как envparse, используя ее, вы можете прочитать значение в качестве определенного типа.

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)

ПРИМЕЧАНИЕ: kennethreitz autoenv является рекомендуемым инструментом для создания конкретных переменных среды проекта, обратите внимание, что те, кто использует autoenv пожалуйста, сохраните файл .env закрытый (недоступный для публики)

Ответ 8

В Python 3:

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

Ответ 9

Вот вариант с одной строкой, предполагающий import os:

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

или с форматированием:

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

Ответ 10

На самом деле это можно сделать так:

import os

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

Или просто:

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

Для просмотра значения в параметре:

print(os.environ['HOME'])

Или же:

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

Чтобы установить значение:

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

Ответ 11

для 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")

или же:

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

для os.getenv:

existed_env_value = os.getenv("key_maybe_not_exist")

эквивалентно:

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

Ответ 12

Там также много замечательных библиотек. Например, Envs позволит вам анализировать объекты из переменных вашей среды, то есть rad.