Ответы:
Переменные среды доступны через 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)
.get()
также может быть задано по умолчанию.
Чтобы проверить, существует ли ключ (возвращает True
или False
)
'HOME' in os.environ
Вы также можете использовать get()
при печати ключа; полезно, если вы хотите использовать значение по умолчанию.
print(os.environ.get('HOME', '/home/username/'))
где /home/username/
по умолчанию
"HOME" in os.environ
или os.environ.get('HOME')
?
"HOME" in os.environ
против os.environ.get('HOME') is None
. Как вы видите, во-первых, гораздо удобнее читать и с ним удобно работать.
Первоначальный вопрос (первая часть) был «как проверить переменные окружения в Python».
Вот как проверить, установлен ли $ FOO:
try:
os.environ["FOO"]
except KeyError:
print "Please set the environment variable FOO"
sys.exit(1)
"if 'FOO' not in os.environ: ..."
блок
Вы можете получить доступ к переменным среды, используя
import os
print os.environ
Попробуйте просмотреть содержимое переменных окружения PYTHONPATH или PYTHONHOME, возможно, это будет полезно для вашего второго вопроса. Однако вы должны уточнить это.
Что касается переменных среды:
import os
print os.environ["HOME"]
Боюсь, вам придется еще немного конкретизировать свою вторую мысль, прежде чем возможен достойный ответ.
На самом деле это может быть сделано это далеко:
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'
str.format
это просто модное дополнение.
>>> import os, pprint; pprint.pprint(list(os.environ.items()))
Если вы планируете использовать код в коде производственного веб-приложения,
используя любую веб-инфраструктуру, такую как 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 kennethreitz является рекомендуемым инструментом для создания переменных среды, специфичных для проекта. Обратите внимание, что те, кто используют, должны autoenv
сохранять .env
файл закрытым (недоступным для общественности)
Там также есть несколько замечательных библиотек. Например, Envs позволит вам анализировать объекты из переменных вашей среды, что является рад. Например:
from envs import env
env('SECRET_KEY') # 'your_secret_key_here'
env('SERVER_NAMES',var_type='list') #['your', 'list', 'here']
Для django см. ( Https://github.com/joke2k/django-environ )
$ pip install django-environ
import environ
env = environ.Env(
# set casting, default value
DEBUG=(bool, False)
)
# reading .env file
environ.Env.read_env()
# False if not in os.environ
DEBUG = env('DEBUG')
# Raises django's ImproperlyConfigured exception if SECRET_KEY not in os.environ
SECRET_KEY = env('SECRET_KEY')
Вы также можете попробовать это
Сначала установите python-decouple
pip install python-decouple
импортировать его в свой файл
from decouple import config
Тогда получите переменную env
SECRET_KEY=config('SECRET_KEY')
Узнайте больше о библиотеке Python здесь