ACLClouds
ACLClouds

Хостинг бота Discord на Python с discord.py

requirements.txt, стартовый файл, логи: шаги, чтобы запустить бота discord.py и понять, почему он останавливается.

Бот, написанный на discord.py, состоит из нескольких файлов: кода, списка зависимостей и стартового файла. Когда все три готовы, хостинг означает загрузку файлов, установку зависимостей, запуск бота и чтение логов, если что-то идёт не так.

  • Бот discord.py состоит из трёх файлов: кода, requirements.txt и стартового файла.
  • Токен никогда не должен находиться в коде или в Git.
  • Логи показывают причину: прочитайте последнее исключение перед перезапуском.

Подготовка файлов

Бот должен помещаться в простую папку. Не храните токен в коде (см. статью о переменных окружения), а зависимости перечислите в файле requirements.txt, который установка читает построчно.

  • bot.py: стартовый файл, который создаёт клиент и вызывает client.run().
  • requirements.txt: один пакет на строку, например discord.py>=2.3 как минимальная проверенная версия.
  • Файл .env только для локальных тестов: он не должен попадать на сервер или в Git.

Установка и запуск

В окружении Python команда установки зависимостей такая же, как на вашем ПК. После установки пакетов бот запускается со своего стартового файла.

  • pip install -r requirements.txt: устанавливает перечисленные пакеты.
  • python bot.py: запускает бота локально, чтобы проверить подключение.
  • Если консоль сообщает, что стартовый файл не найден, она ищет его в подпапках и предлагает исправление одним кликом.

Прочтите журналы

Логи: это первое место для проверки. Остановившийся бот почти всегда оставляет след: исключение Python, отказ во входе или ошибку токена.

  • Traceback с названием исключения: указанные файл и строка показывают код для исправления.
  • discord.errors.LoginFailure: токен отсутствует или недействителен, см. статью о частых ошибках ботов Discord.
  • Привилегированные интенты: Message Content нужно включить в портале разработчиков Discord, если код читает текст сообщений.

Почему ACLClouds для бота на discord.py

Бесплатный тариф даёт 1 бота, 315 МБ ОЗУ, 0,25 vCPU и 715 МБ хранилища. ffmpeg, yt-dlp и deno уже установлены, а у каждого бота свой доступ SFTP.

  • Бесплатный тариф: 1 бот, 315 МБ ОЗУ, 0,25 vCPU, 715 МБ хранилища, загрузка файлов до 100 МБ.
  • Образ Python включает ffmpeg, yt-dlp и deno.
  • Доступ SFTP для каждого бота на порту 2222, чтобы загружать файлы через FileZilla.

Часто задаваемые вопросы

Какая версия Python нужна для discord.py?

discord.py 2.x требует Python 3.8 или новее. Для нового проекта возьмите актуальную версию, которую ещё поддерживают.

Бот подключается, но не отвечает на сообщения. Почему?

Проверьте, включён ли интент Message Content в портале разработчиков, и может ли бот читать и писать сообщения в канале.

Может ли бот работать при выключенном ПК?

Да, для этого и нужен хостинг: бот работает на сервере. Всё равно проверяйте логи после каждого обновления кода.