# Работа с переменными окружения в Python ## Основные способы ### 1. Через `os.environ` (стандартная библиотека) ```python 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 (рекомендуется для разработки) ```python import os from dotenv import load_dotenv # Загрузить переменные из .env файла load_dotenv() # Теперь работаем с переменными email = os.environ.get('EMAIL_ADDRESS') ``` ## Установка python-dotenv ```bash pip install python-dotenv ``` Или добавьте в зависимости проекта (уже добавлено в `pyptoject.toml`): ```toml dependencies = [ "python-dotenv>=1.0.0" ] ``` ## Настройка .env файла 1. Скопируйте `example.env` в `.env`: ```bash cp example.env .env ``` 2. Отредактируйте `.env` и добавьте свои данные: ```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 ```python 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`)