НОВОЕ 📢 Ограниченное стартовое предложение: скидка до 70% на первый месяц для любой игры!Посмотреть тарифы

python-telegram-bot или aiogram на PlayNHost

Хостинг Discord-ботовUpdated Oct 29, 20266 min read

И 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-botaiogram
Память, которую мы измерилиОколо 40 МБ (версия 22)Около 169 МБ (версия 3)
Звёзды на GitHub (29 окт. 2026)29 5365 912
Скачивания с PyPI за последние 30 дней (29 окт. 2026)6,76 млн2,76 млн
Вызов pollingapplication.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. Код aiogram os.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 ГБ. Тариф побольше пригодится, когда вырастет сам бот: данные в памяти, файлы и изображения или несколько ботов в одном процессе.

Ваш бот уже у другого хостинга? Перенесите его к нам

ПОСЛЕДНИЕ БЛОГИ