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):
| Biblioteka | Pamięć |
|---|---|
| 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-bot | aiogram | |
|---|---|---|
| Zmierzona pamięć | Około 40 MB (wersja 22) | Około 169 MB (wersja 3) |
| Gwiazdki na GitHub (29 paź 2026) | 29 536 | 5 912 |
| Pobrania z PyPI w ostatnich 30 dniach (29 paź 2026) | 6,76 mln | 2,76 mln |
| Wywołanie pollingu | application.run_polling() | await dp.start_polling(bot) |
| Nazwa tokena w oficjalnych przykładach | Brak (wartość zastępcza "TOKEN") | BOT_TOKEN |
| Webhook pozostawiony na bocie | Usuwany sam, gdy startuje polling | Nie 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 ponawia | Cią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_TOKENiTELOXIDE_TOKEN. Kod aiogramos.getenv("BOT_TOKEN")działa bez zmian; w przykładach python-telegram-bot zamień wartość zastępczą naos.environ["TOKEN"]alboos.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 przy409 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()przedstart_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 poziomieINFO. W python-telegram-bot wypiszLogged in as @your_botsamodzielnie, 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
InvalidTokeni 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.



