Files
mail_order_bot/docs/ENVIRONMENT_VARIABLES.md
2025-10-28 23:10:48 +03:00

2.5 KiB
Raw Blame History

Работа с переменными окружения в Python

Основные способы

1. Через os.environ (стандартная библиотека)

import os

# Чтение с безопасным значением по умолчанию
email = os.environ.get('EMAIL_ADDRESS', 'default@example.com')

# Чтение обязательной переменной
password = os.environ.get('EMAIL_PASSWORD')
if not password:
    raise ValueError("EMAIL_PASSWORD not set")

# Прямой доступ (вызовет KeyError, если переменной нет)
email = os.environ['EMAIL_ADDRESS']

2. С использованием python-dotenv (рекомендуется для разработки)

import os
from dotenv import load_dotenv

# Загрузить переменные из .env файла
load_dotenv()

# Теперь работаем с переменными
email = os.environ.get('EMAIL_ADDRESS')

Установка python-dotenv

pip install python-dotenv

Или добавьте в зависимости проекта (уже добавлено в pyptoject.toml):

dependencies = [
    "python-dotenv>=1.0.0"
]

Настройка .env файла

  1. Скопируйте example.env в .env:

    cp example.env .env
    
  2. Отредактируйте .env и добавьте свои данные:

    EMAIL_ADDRESS=your_email@gmail.com
    EMAIL_PASSWORD=your_app_password
    IMAP_HOST=imap.gmail.com
    IMAP_PORT=993
    SMTP_HOST=smtp.gmail.com
    SMTP_PORT=587
    
  3. Убедитесь, что .env добавлен в .gitignore (уже добавлено)

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

import os
from dotenv import load_dotenv
from mail_order_bot.email_client import EmailClient

# Загрузить переменные из .env файла
load_dotenv()

# Чтение переменных
EMAIL = os.environ.get('EMAIL_ADDRESS')
PASSWORD = os.environ.get('EMAIL_PASSWORD')

# Создание клиента
client = EmailClient(
    imap_host='imap.gmail.com',
    smtp_host='smtp.gmail.com',
    email=EMAIL,
    password=PASSWORD
)

Безопасность

  • НЕ коммитьте .env файл в git
  • Используйте .env.example как шаблон
  • Храните реальные пароли только в .env (уже добавлено в .gitignore)