И python-telegram-bot, и aiogram хорошо работают на любом тарифе PlayNHost для ботов, включая тариф STARTER на 0,5 ГБ (от US$1.99 в месяц). В наших собственных замерах бот на python-telegram-bot 22 использовал около 40 МБ памяти, а бот на aiogram 3 около 169 МБ, так что выбор между ними определяет не память. Берите ту библиотеку, по примерам и руководствам которой вы работаете. Наш стартовый бот на Python использует python-telegram-bot: это самая популярная по звёздам и скачиваниям библиотека Python для Telegram-ботов, и самая лёгкая из тех, что мы измерили.
Что мы измерили
Мы измерили каждую библиотеку на своих серверах с собранным ботом, готовым к запуску (память, которую использует процесс, ещё до первых сообщений):
| Библиотека | Память |
|---|---|
| python-telegram-bot 22 (Python 3.13) | 40 МБ |
| Telegraf (Node.js 22) | 60 МБ |
| grammY (Node.js 22) | 61 МБ |
| aiogram 3 (Python 3.13) | 169 МБ |
Сам Python в том же тесте занял 8 МБ. К этим числам добавятся ваш код, данные, которые он держит в памяти, и число чатов.
Почему подойдёт любой размер тарифа
Тариф STARTER на 0,5 ГБ запускает любую из этих библиотек, и ещё остаётся место для вашего кода: даже aiogram, самая тяжёлая из них, использует около трети. Выбирайте 1 ГБ или больше, если бот хранит данные в памяти, работает с файлами или изображениями либо запускает несколько ботов в одном процессе. Тарифы и цены: Хостинг Telegram-ботов.
Сравнение рядом
| python-telegram-bot | aiogram | |
|---|---|---|
| Память, которую мы измерили | Около 40 МБ (версия 22) | Около 169 МБ (версия 3) |
| Звёзды на GitHub (29 окт. 2026) | 29 536 | 5 912 |
| Скачивания с PyPI за последние 30 дней (29 окт. 2026) | 6,76 млн | 2,76 млн |
| Вызов polling | application.run_polling() | await dp.start_polling(bot) |
| Имя токена в официальных примерах | Нет (заглушка "TOKEN") | BOT_TOKEN |
| Вебхук, оставшийся на боте | Удаляется сам при запуске polling | Не удаляется: повторяет попытки на ошибке 409 Conflict |
| Отклонённый токен (401) | Прекращает повторы: Invalid token. Aborting retry loop. | Продолжает повторять, поэтому бот выглядит работающим |
| Запущена другая копия (409) | Продолжает повторять | Продолжает повторять |
aiogram часто встречается в русскоязычных руководствах и ответах. Если вы следуете руководству, берите ту библиотеку, которую использует оно.
Что это значит на вашем сервере
- Токен: панель передаёт его вашему коду как
TELEGRAM_BOT_TOKEN,BOT_TOKEN,TOKEN,TELEGRAM_TOKENиTELOXIDE_TOKEN. Код aiogramos.getenv("BOT_TOKEN")работает как есть; в примерах python-telegram-bot замените заглушку наos.environ["TOKEN"]илиos.environ["TELEGRAM_BOT_TOKEN"]. - Бот выглядит работающим, но не отвечает: aiogram продолжает повторять попытки с отклонённым токеном и при
409 Conflict, а python-telegram-bot при409 Conflict. Панель читает консоль и показывает баннер с причиной, например Ваш бот работает ещё и в другом месте. См. Как исправить ошибку 409 Conflict у Telegram-бота. - Вебхук со старого хостинга: python-telegram-bot удаляет его при запуске polling. С aiogram нажмите Удалить вебхук на странице Бот, в разделе Telegram, или вызовите
await bot.delete_webhook()передstart_polling. - Онлайн в Telegram: метка на странице Обзор меняется на Онлайн в Telegram, когда консоль показывает строку о готовности. aiogram выводит
Run polling for bot @your_bot, когда уровень логовINFO. С python-telegram-bot выводитеLogged in as @your_botсами, как это делает наш стартовый бот. - Ваш токен в консоли: когда Telegram отклоняет токен, в сообщении об ошибке python-telegram-bot есть сам токен. Наш стартовый бот перехватывает
InvalidTokenи выводит вместо этого понятную строку, а в своих строках лога токен скрывает. - Версия Python: python-telegram-bot 22 требует Python 3.10 или новее. В списке Среда выполнения в разделе Код есть версии с 3.10 по 3.14, по умолчанию стоит 3.12.
Один и тот же бот на двух библиотеках
Оба отвечают на /start и читают токен, который даёт им панель. Укажите библиотеку в requirements.txt, а код положите в bot.py, это Файл запуска по умолчанию.
Для python-telegram-bot: requirements.txt
python-telegram-bot>=22,<23
bot.py
import os
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.effective_message.reply_text("Hello! I am running on PlayNHost.")
async def post_init(application: Application) -> None:
print(f"Logged in as @{application.bot.username}", flush=True)
application = (
Application.builder()
.token(os.environ["TELEGRAM_BOT_TOKEN"])
.post_init(post_init)
.build()
)
application.add_handler(CommandHandler("start", start))
application.run_polling()
Для aiogram: requirements.txt
aiogram>=3,<4
bot.py
import asyncio
import logging
import os
from aiogram import Bot, Dispatcher
from aiogram.filters import CommandStart
from aiogram.types import Message
dp = Dispatcher()
@dp.message(CommandStart())
async def start(message: Message) -> None:
await message.answer("Hello! I am running on PlayNHost.")
async def main() -> None:
bot = Bot(os.environ["BOT_TOKEN"])
await bot.delete_webhook()
await dp.start_polling(bot)
if __name__ == "__main__":
logging.basicConfig(level=logging.INFO)
asyncio.run(main())
Версия на aiogram ведёт логи на уровне INFO, поэтому при готовности выводит Run polling for bot @your_bot, а перед запуском polling удаляет вебхук, оставшийся на боте.
А на Node.js
Наш стартовый бот на Node.js использует grammY. В нашем тесте grammY и Telegraf заняли почти одинаково памяти (61 и 60 МБ), так что любая подходит для любого тарифа. Мы выбрали grammY, потому что она продолжает обновляться (1.46.0 от 26 авг. 2026, тогда как последний релиз Telegraf, 4.16.3, вышел 29 февр. 2024).
Частые вопросы
Какую библиотеку использует стартовый бот?
python-telegram-bot 22 на сервере Python и grammY на сервере Node.js. Нажмите Создать стартового бота в карточке Настройка бота на странице Обзор. См. Как запустить Telegram-бота.
Можно ли позже перейти с одной библиотеки на другую?
Да. Обе работают на одном и том же сервере Python: измените requirements.txt и свой код, затем перезапустите. Новый пакет установится при этом запуске, потому что файл пакетов изменился.
Нужен ли для aiogram тариф побольше?
Нет. При около 169 МБ он спокойно умещается в тариф STARTER на 0,5 ГБ. Тариф побольше пригодится, когда вырастет сам бот: данные в памяти, файлы и изображения или несколько ботов в одном процессе.



