Рубрики
Без рубрики

Используя .env. Файлы для переменных среды в Python Applications

Приложения сделаны для развертывания. В какой-то момент во время развития вам нужно будет подумать о … Помечено с Python, программированием, окружающей средой, докера.

Приложения сделаны для развертывания. В какой-то момент во время разработки вам нужно будет подумать об окружающей среде, в которой будет запускать ваше приложение, и потенциально чувствительная информация об окружающей среде, информация, которую ваша заявка должна будет выполнять свои задачи.

Переменные среды являются одним из ключевых способов разработчиков программного обеспечения обеспечивают приложение с такой информацией, однако запуск и тестирование на местах на местах, который зависит от переменных среды может быть хлопотным, если вы устанавливаете эти переменные в среде вашего локального компьютера.

Процесс настройки или изменения переменной окружающей среды – это трудоемкость и со временем количество переменных среды, которые вы должны управлять, выросло из-под контроля. В конце концов, конфликты именования становится проблемой, и каждая новая переменная требует длительного префикса, чтобы отличить себя от аналогичных переменных.

Используя .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”