Как запустить Telegram-бота на Python
Разберём запуск бота на aiogram, python-telegram-bot или любой другой библиотеке на Coding-сервере Nouply: от выбора версии Python до проверки, что бот работает 24/7.
1. Выберите версию Python
В панели доступны Python 2.7 и 3.7–3.12. Для новых ботов берите 3.11 или 3.12.
- Откройте сервер в панели → вкладка «Запуск»
- В поле «Docker Image» выберите нужную версию Python
- Перезапустите сервер, чтобы версия применилась
2. Загрузите код
Перетащите файлы бота в файловый менеджер панели или загрузите их по SFTP. Главный файл и requirements.txt должны лежать в корне, а не во вложенной папке.
/home/container
├── bot.py
├── requirements.txt
└── .env3. Укажите главный файл и зависимости
Во вкладке «Запуск» есть переменные, которые читаются при каждом запуске:
| Переменная | Что указать |
|---|---|
| App py file | Имя главного файла, например bot.py (по умолчанию app.py) |
| Requirements file | requirements.txt — пакеты из него ставятся автоматически при старте |
| Additional Python packages | Дополнительные пакеты через пробел, если нет requirements.txt |
# requirements.txt
aiogram==3.13.1
python-dotenv==1.0.14. Храните токен отдельно от кода
Не вписывайте токен бота прямо в bot.py: его легко случайно отправить в GitHub или скриншот. Положите его в файл .env и читайте через python-dotenv.
import os
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv("BOT_TOKEN")Если токен всё же утёк — перевыпустите его у @BotFather командой /revoke. Старый сразу перестанет работать.
5. Запустите и проверьте
Нажмите «Start» и откройте консоль: сначала установятся пакеты, затем запустится бот. Напишите ему в Telegram — если ответил, всё готово. Сервер работает круглосуточно, компьютер можно выключать.
Частые ошибки
| Ошибка в консоли | Что делать |
|---|---|
| ModuleNotFoundError: No module named … | Добавьте пакет в requirements.txt и перезапустите сервер |
| can't open file '/home/container/app.py' | В «App py file» указано не то имя файла |
| Conflict: terminated by other getUpdates request | Бот с этим токеном запущен где-то ещё, например у вас на ПК. Остановите вторую копию |
| SyntaxError на f-строках или match | Слишком старая версия Python — выберите 3.10+ в «Docker Image» |