Python Tech

Хранение ключей авторизации и других конфиденциальных данных в файле .env

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

Файл .env

Работает в составе библиотеки python-dotenv (pip install python-dotenv).

Этот файл создается в корневой или другой нужной директории. Обязательно сразу добавляется в .gitignore, чтобы данные не оказались в репозитории на GitHub.

# .gitignore
.env

Переменные в файле хранятся в формате:

OPEN_API_KEY='your_open_api_key' 
DB_PASS='db_pass' 
DB_LOGIN='db_login'

Таким образом, конфиденциальные данные остаются только в среде разработки на локальной машине.

Пример использования

from dotenv import load_dotenv
import os

# Загрузка переменных окружения из файла .env в переменные окружения операционной системы
load_dotenv()

# Получение ключа API из переменных окружения
openai_key = os.getenv('OPEN_API_KEY')

print(openai_key)

Если файл .env лежит в директории выше текущей

import os
from pathlib import Path
from dotenv import load_dotenv

# 1. Находим путь к текущему скрипту
current_dir = Path(__file__).resolve().parent

# 2. Поднимаемся на уровень выше и ищем .env
dotenv_path = current_dir.parent / '.env'

# 3. Загружаем переменные из этого конкретного файла
load_dotenv(dotenv_path=dotenv_path)

# 4. Теперь os.getenv сработает
api_key = os.getenv("MISTRAL_API_KEY")

Применение в ML

При работе с OpenAI через LangChain или напрямую через библиотеку OpenAI, ожидается, что ключ авторизации (токен) находится в переменных окружения. При вызове API этот ключ автоматически считывается из переменной окружения.

Аналогичным образом работают и другие библиотеки, требующие ключ авторизации.

Вставить формулу как
Блок
Строка
Дополнительные настройки
Цвет формулы
Цвет текста
#333333
Используйте LaTeX для набора формулы
Предпросмотр
\({}\)
Формула не набрана
Вставить