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