Прежде чем мы начнем, давайте посмотрим на наш маленький словарь
ENV = Environmental Variable ENVs = Environmental Variables
Не на самом деле не создал какого -либо крупного проекта с Python, кроме написания сценариев или решения простых алгоритмов. Сегодня я вносил изменения в свои Facebook_autopost_bot Когда я понял, что мне нужно будет настроить это, чтобы позволить другим использовать код, а также поделиться им открыто на GitHub, не выпуская мои пароли и конфигурации.
Может, вы уже используете Envs В ваших сценариях Python или приложениях, но если вы не начали, сейчас самое время рассмотреть изменение. Я полагаю, что до того, как вы читаете это, вы уже знаете, что такое Env, поэтому не нужно делать этот пост дольше. ПРИМЕЧАНИЕ. ENTS существует вне вашего кода в рамках вашей среды сервера – может помочь вам как на оптимизацию, так и более безопасное процесс запуска ваших сценариев и приложений. Автоматизация и безопасность являются основными причинами принятия ENVS
Давайте начнем
В Python Environment переменные реализованы с использованием ОС упаковка.
Образец кода:
import os print(environ)
Результат: покажу вам все, существующие на вашей машине (объект, содержащий много информации о вашей машине, ОС, Сервисах и т. Д.)
Примечание: Это отредактированный (сокращенный) вывод с целью длины поста в блоге.
>>> environ({'SHELL': '/bin/bash', 'LSCOLORS': 'ExFxBxDxCxegedabagacad', 'SESSION_MANAGER': 'local/igmrrf:@/tmp/.ICE-unix/2554,unix/igmrrf:/tmp/.ICE-unix/2554', 'QT_ACCESSIBILITY': '1', 'APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL': 'true', 'LANGUAGE': 'en_NG:en', 'QT4_IM_MODULE': 'ibus', 'GNOME_SHELL_SESSION_MODE': 'ubuntu', 'SSH_AUTH_SOCK': '/run/user/1000/keyring/ssh', 'XMODIFIERS': '@im=ibus', 'DESKTOP_SESSION': 'ubuntu', 'SSH_AGENT_PID': '2467', 'NO_AT_BRIDGE': '1', 'GTK_MODULES': 'gail:atk-bridge', 'DBUS_STARTER_BUS_TYPE': 'session', 'PWD': '/home/igmrrf/Desktop/Writings/ENVs in Python', 'TERM_PROGRAM': 'vscode', '_': '/usr/bin/python3'})
Команды для чтения и написания переменных среды:
Чтение
os.environ.get('USER') os.environ['User'] os.getenv('USER') >>> igmrrf >>> igmrrf >>> igmrrf
Команды распечатают ваше текущее имя пользователя
ПРИМЕЧАНИЕ. Если нет переменной среды, соответствующей ключу, она вернет Никто
ПИШУ
Чтобы изменить эвинг
os.environ['USER'] = 'tldo'
os.environ['USER'] >>>tldo
Очистить Ответ
os.environ.pop('USER')
При попытке получить доступ к этой Env, вы получите Никто
os.environ.get('USER') >>> None
Очистить Все Env
os.environ.clear()
При попытке получить доступ к любой ENV, вы получите Keyerror
os.environ.get('USER') >>> KeyError: key does not exist.
Примечание: я сначала напугался этой четкой функции, но не волнуйтесь, настройки, которые вы применяете в своих проектах Python и сценариях, не влияют на другие проекты за пределами этого конкретного процесса или влияют на Envs Machine. Если вы хотите повлиять на широкое изменение машины на вашей машине, вам нужно будет запустить эти команды из Bash с Sudo Привилегии
Использование ENVS
Чтобы использовать эти переменные, поскольку мы продолжаем строить сценарии и в качестве программистов и разработчиков, эффективность, скорость и оптимизация являются основным критерием, нам необходимо назначить функцию обработки этих переменных на внешний файл.
Пакет, который делает это без особых усилий, является Python-Decouple
Откройте свой терминал и запустите
pip install python-decouple
Если вы используете Linux Ubuntu и установите Python с помощью Sudo Apt Установить Python3 тогда бежать
pip3 install python-decouple
Полезный пакет для обработки ENVS локально, а не для нас, акцентируя нашу ОС ( Импорт ОС ) и манипулирование, которая немного сложна 😉
Если вы уже установили, вы получите
Requirement already satisfied: python-decouple in /home/your_name/.local/lib/python3.8/site-packages (3.3)
иначе он будет установлен через несколько секунд
Использование Python-Decouple
Давайте начнем с создания и открытия нашего файла .env в корне вашего проекта
$ touch .env $ code .env
Примечание: код это команда, которая поставляется с VSCODE Анкет Запустите его только в том случае, если у вас есть vScode установить и правильно настроить на вашем компьютере
Затем настройте файл следующим образом
username=igmrrf PASSWORD=12345 URL=https://api.igmrrf.com
Затем импортируйте Python-Decouple в свой сценарий Python, где вам нужны эти переменные
from decouple import config print(config('URL')) print(config('USERNAME')) >>> your_api_endpoint >>> igmrrf
Разве это не просто? 😄
Python предоставляет пакет почти для всего, это одна из причин, по которой Python настолько популярен и получает больше признания.
Если у вас есть секунда, либо напишите об этом, либо зайдите в пакет Python 😉
Оригинал: “https://dev.to/igmrrf/environmental-variables-in-python-5a2k”