← Все вопросы

Как спрятать токен бота в переменную окружения (.env)?

Задан 4 месяца назад630 просмотров2 ответа
6

Понял, что токен нельзя вставлять прямо в код. Но как тогда правильно его подключить, чтобы код работал, а сам токен лежал отдельно? Слышал про какой-то .env, но не понял как это сделать на практике.

2 ответа

10
✓ Принятый ответ — помог автору

Самый простой способ — библиотека python-dotenv плюс файл .env.

  1. Поставь: pip install python-dotenv
  2. Рядом с bot.py создай файл .env (с точкой в начале):
BOT_TOKEN=123456789:AAE...твой_токен
  1. В коде читай его из окружения:
import os
from dotenv import load_dotenv
from aiogram import Bot

load_dotenv()  # подгружает .env в окружение
bot = Bot(os.getenv("BOT_TOKEN"))
  1. Обязательно создай файл .gitignore и впиши туда одну строку:
.env

Теперь токен лежит в .env у тебя на компьютере, а в git и на GitHub уезжает только код. Друг при желании создаёт свой .env со своим токеном.

3

Если не хочешь ставить лишнюю библиотеку, можно задать переменную окружения прямо в системе и читать через os.getenv("BOT_TOKEN") без load_dotenv. Но для учебного проекта вариант с .env удобнее: всё в одном месте и легко переносить.

Ваш ответ

Войдите, чтобы ответить на вопрос.