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

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

1427
задан 05 февр. '11 в 16:03
источник поделиться
12 ответов

Доступ к переменным окружениям осуществляется через 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)
2166
ответ дан 05 февр. '11 в 16:18
источник

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

'HOME' in os.environ

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

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

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

155
ответ дан 12 июля '12 в 11:14
источник

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

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

try:  
   os.environ["FOO"]
except KeyError: 
   print "Please set the environment variable FOO"
   sys.exit(1)
35
ответ дан 29 марта '12 в 16:58
источник

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

import os
print os.environ

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

25
ответ дан 05 февр. '11 в 16:07
источник

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

import os
print os.environ["HOME"]

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

15
ответ дан 05 февр. '11 в 16:07
источник
import os
for a in os.environ:
    print('Var: ', a, 'Value: ', os.getenv(a))
print("all done")

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

11
ответ дан 28 марта '17 в 18:46
источник

Если вы планируете использовать код в коде веб-приложения для производства,
используя любую веб-инфраструктуру, такую ​​как 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 закрытый (недоступный для публики)

7
ответ дан 10 янв. '17 в 7:12
источник

В Python 3:

#!/usr/bin/python3
import os
for param in os.environ.keys():
    print("%s: %s " % (param, os.environ[param]))
6
ответ дан 21 февр. '18 в 14:16
источник

Вот вариант с одной строкой, предполагающий 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]))
6
ответ дан 27 марта '18 в 10:34
источник

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

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'
1
ответ дан 10 марта '18 в 18:52
источник

для 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)
0
ответ дан 22 авг. '18 в 4:47
источник

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

0
ответ дан 19 дек. '18 в 19:00
источник

Другие вопросы по меткам или Задайте вопрос