NOWOŚĆ 📢 Ograniczona oferta na start: do 70% zniżki na pierwszy miesiąc, na każdą grę!Zobacz plany

python-telegram-bot kontra aiogram w PlayNHost

Hosting botów DiscordUpdated Oct 29, 20266 min read

Zarówno python-telegram-bot, jak i aiogram działają dobrze w każdym planie dla botów PlayNHost, także w planie STARTER 0,5 GB (od 1,99 USD miesięcznie). W naszych własnych pomiarach bot na python-telegram-bot 22 zajmował około 40 MB pamięci, a bot na aiogram 3 około 169 MB, więc o wyborze między nimi nie decyduje pamięć. Wybierz tę, według której przykładów i poradników pracujesz. Nasz bot startowy w Pythonie używa python-telegram-bot, bo to najczęściej oznaczana gwiazdkami i najczęściej pobierana biblioteka Pythona do botów Telegram, a przy tym najlżejsza ze zmierzonych.

Co zmierzyliśmy

Zmierzyliśmy każdą bibliotekę na naszych serwerach, z gotowym do uruchomienia botem (pamięć zajmowana przez proces, zanim przyjdą jakiekolwiek wiadomości):

BibliotekaPamięć
python-telegram-bot 22 (Python 3.13)40 MB
Telegraf (Node.js 22)60 MB
grammY (Node.js 22)61 MB
aiogram 3 (Python 3.13)169 MB

Sam Python zajął w tym samym teście 8 MB. Do tych liczb dochodzą twój kod, dane trzymane w pamięci i liczba czatów.

Dlaczego wystarczy dowolny rozmiar planu

Plan STARTER 0,5 GB uruchamia każdą z tych bibliotek i zostawia miejsce na twój kod: nawet aiogram, najcięższy, zajmuje około jednej trzeciej. Wybierz 1 GB lub więcej, gdy twój bot trzyma dane w pamięci, obsługuje pliki lub obrazy albo uruchamia kilka botów w jednym procesie. Plany i ceny: Hosting botów Telegram.

Obok siebie

python-telegram-botaiogram
Zmierzona pamięćOkoło 40 MB (wersja 22)Około 169 MB (wersja 3)
Gwiazdki na GitHub (29 paź 2026)29 5365 912
Pobrania z PyPI w ostatnich 30 dniach (29 paź 2026)6,76 mln2,76 mln
Wywołanie pollinguapplication.run_polling()await dp.start_polling(bot)
Nazwa tokena w oficjalnych przykładachBrak (wartość zastępcza "TOKEN")BOT_TOKEN
Webhook pozostawiony na bocieUsuwany sam, gdy startuje pollingNie jest usuwany: ponawia próby przy błędzie 409 Conflict
Odrzucony token (401)Przestaje ponawiać: Invalid token. Aborting retry loop.Ciągle ponawia, więc bot wygląda na działającego
Działa inna kopia (409)Ciągle ponawiaCiągle ponawia

aiogram często pojawia się w rosyjskojęzycznych poradnikach i odpowiedziach. Jeśli idziesz za poradnikiem, użyj biblioteki, której on używa.

Co to oznacza na twoim serwerze

  • Token: panel przekazuje go twojemu kodowi jako TELEGRAM_BOT_TOKEN, BOT_TOKEN, TOKEN, TELEGRAM_TOKEN i TELOXIDE_TOKEN. Kod aiogram os.getenv("BOT_TOKEN") działa bez zmian; w przykładach python-telegram-bot zamień wartość zastępczą na os.environ["TOKEN"] albo os.environ["TELEGRAM_BOT_TOKEN"].
  • Bot wygląda na działającego, ale nie odpowiada: aiogram ciągle ponawia próby z odrzuconym tokenem i przy 409 Conflict, a python-telegram-bot przy 409 Conflict. Panel czyta konsolę i pokazuje baner z przyczyną, na przykład Twój bot działa też gdzie indziej. Zobacz Jak naprawić błąd 409 Conflict bota Telegram.
  • Webhook ze starego hostingu: python-telegram-bot usuwa go, gdy startuje polling. W aiogram kliknij Usuń webhook na stronie Bot, w sekcji Telegram, albo wywołaj await bot.delete_webhook() przed start_polling.
  • Online w Telegramie: znacznik na stronie Przegląd zmienia się na Online w Telegramie, gdy konsola pokazuje linię gotowości. aiogram wypisuje Run polling for bot @your_bot, gdy logowanie jest na poziomie INFO. W python-telegram-bot wypisz Logged in as @your_bot samodzielnie, tak jak robi to nasz bot startowy.
  • Twój token w konsoli: gdy Telegram odrzuca token, komunikat błędu python-telegram-bot zawiera sam token. Nasz bot startowy przechwytuje InvalidToken i wypisuje zamiast tego czytelną linię, a w swoich liniach logu ukrywa token.
  • Wersja Pythona: python-telegram-bot 22 wymaga Pythona 3.10 lub nowszego. Lista Runtime w sekcji Kod oferuje wersje od 3.10 do 3.14, a domyślna to 3.12.

Ten sam bot w obu bibliotekach

Oba odpowiadają na /start i odczytują token, który daje im panel. Wpisz bibliotekę do requirements.txt, a kod do bot.py, czyli domyślnej wartości pola Plik startowy.

Dla 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()

Dla 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())

Wersja aiogram loguje na poziomie INFO, więc gdy jest gotowa, wypisuje Run polling for bot @your_bot, a przed startem pollingu usuwa webhook pozostawiony na bocie.

A w Node.js

Nasz bot startowy w Node.js używa grammY. W naszym teście grammY i Telegraf zajęły mniej więcej tyle samo pamięci (61 i 60 MB), więc każda pasuje do dowolnego planu. Wybraliśmy grammY, bo nadal jest aktualizowana (1.46.0 z 26 sierpnia 2026, podczas gdy ostatnie wydanie Telegraf, 4.16.3, ukazało się 29 lutego 2024).

Pytania, które zadają ludzie

Której używa bot startowy?

python-telegram-bot 22 na serwerze Python i grammY na serwerze Node.js. Kliknij Utwórz bota startowego na karcie Skonfiguruj swojego bota na stronie Przegląd. Zobacz Jak hostować bota Telegram.

Czy mogę później przejść z jednej biblioteki na drugą?

Tak. Obie działają na tym samym serwerze Python: zmień requirements.txt i swój kod, a potem zrestartuj. Nowy pakiet zainstaluje się przy tym starcie, bo plik pakietów się zmienił.

Czy do aiogram potrzebuję większego planu?

Nie. Przy około 169 MB mieści się w planie STARTER 0,5 GB z dużym zapasem. Większy plan pomaga, gdy rośnie sam bot: dane trzymane w pamięci, pliki i obrazy albo kilka botów w jednym procesie.

Twój bot działa już gdzie indziej? Przenieś go do nas

NASZE OSTATNIE WPISY