python - пользователя - создать переменную среды




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

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


В Python 3:

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

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

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

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

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

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

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

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


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

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

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

Что касается переменных среды:

import os
print os.environ["HOME"]

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


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

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

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







environment-variables