Как получить доступ к переменным среды из 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
источник

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