Приложения сделаны для развертывания. В какой-то момент во время разработки вам нужно будет подумать об окружающей среде, в которой будет запускать ваше приложение, и потенциально чувствительная информация об окружающей среде, информация, которую ваша заявка должна будет выполнять свои задачи.
Переменные среды являются одним из ключевых способов разработчиков программного обеспечения обеспечивают приложение с такой информацией, однако запуск и тестирование на местах на местах, который зависит от переменных среды может быть хлопотным, если вы устанавливаете эти переменные в среде вашего локального компьютера.
Процесс настройки или изменения переменной окружающей среды – это трудоемкость и со временем количество переменных среды, которые вы должны управлять, выросло из-под контроля. В конце концов, конфликты именования становится проблемой, и каждая новая переменная требует длительного префикса, чтобы отличить себя от аналогичных переменных.
Используя .env
Файл позволит вам использовать переменные среды для локального развития без загрязнения глобального пространства имен окружающей среды. Это также сохранит ваши имена переменной окружающей среды и значения, изолированные на тот же проект, который их использует.
А .env
Файл – это текстовый файл, содержащий пары значения клавиш всех переменных среды, требуемых вашим приложением. Этот файл включен в ваш проект локально, но не сохраняется в контроль источника, так что вы не подвергаете риску потенциально конфиденциальности информации.
# environment variables defined inside a .env file GCP_PROJECT_ID=my-project-id SERVICE_ACCOUNT_FILE=path/to/serviceAccountCredentials STORAGE_BUCKET_NAME=my-super-important-data
Почти каждый язык программирования имеет пакет или библиотеку, которая может использоваться для чтения переменных среды из .env
файл вместо вашей локальной среды. Для Python эта библиотека – Python-dotenv Отказ Как только библиотека установлена, среднее значение для Python-dotenv Требуется только добавление двух строк кода в ваш проект.
from dotenv import load_dotenv load_dotenv()
load_dotenv ()
сначала ищу .env
Файл и если он найдет один, он загрузит переменные среды из файла и заставляют их доступны для вашего проекта, как и любая другая переменная среды.
import os from dotenv import load_dotenv load_dotenv() GCP_PROJECT_ID = os.getenv('GCP_PROJECT_ID') SERVICE_ACCOUNT_FILE = os.getenv('SERVICE_ACCOUNT_FILE') STORAGE_BUCKET_NAME = os.getenv('STORAGE_BUCKET_NAME')
Если переменная среды не найдена в .env
Файл, load_dotenv
Затем ищу переменную по указанному имени в хост-среде. Это означает, что когда ваш проект работает локально и .env
Файл присутствует, будут использоваться переменные, определенные в файле. Когда ваш проект развернут в хост-среду, такой как виртуальная машина или контейнер докера, где .env
Файл нет, будут использоваться переменные среды, определенные в хост-среде, будут использоваться вместо этого.
По умолчанию load_dotenv
будет искать .env
Файл в текущем рабочем каталоге или любых родительских каталогах Однако вы также можете указать путь, если ваш конкретный корпус использования требует его хранить в другом месте.
from dotenv import load_dotenv from pathlib import Path dotenv_path = Path('path/to/.env') load_dotenv(dotenv_path=dotenv_path)
Для большинства приложений это все, что вам нужно будет продуктивна с Python-dotenv. Однако есть несколько дополнительных функций, о которых вы можете прочитать в Python-dotenv документация .
Одна из преимуществ использования .env
Файл состоит в том, что становится намного проще развиваться с изменениями среды в разуме. Думая об этих вещах на более ранней стадии процесса разработки сделает вам легче получить ваше приложение готовым к развертыванию.
Если вы развертываете свое приложение в контейнере Docker, вы можете легко перейти к запуску и тестированию вашего приложения в локальном контейнере запуска, используя флаг Tenv-file .env
С твоей Docker Run
команда. Docker затем установит те же переменные среды, которые вы использовали через Python-dotenv в окружающей среде контейнера.
Без .env
Файл, переменные среды являются громоздкими, хотя и необходимой частью тестирования вашего приложения локально. Используя .env
Файл и Python-dotenv Библиотека, работающая с переменными окружающей среды, становится гораздо более управляемым и приведет вас к разрабатыванию с учетом развертывания с самого начала.
Оригинал: “https://dev.to/jakewitcher/using-env-files-for-environment-variables-in-python-applications-55a1”