В этом руководстве создаётся бот на Python с одной слэш-командой, /ping. Сначала вам нужны приложение Discord и токен бота: Как создать Discord-бота и получить его токен.
Файлы
requirements.txt
discord.py>=2.4
bot.py
import os
import discord
from discord import app_commands
intents = discord.Intents.default()
client = discord.Client(intents=intents)
tree = app_commands.CommandTree(client)
@tree.command(name="ping", description="Replies with pong")
async def ping(interaction: discord.Interaction):
await interaction.response.send_message("pong")
@client.event
async def on_ready():
await tree.sync()
print(f"Logged in as {client.user}")
client.run(os.environ["DISCORD_TOKEN"])
Бот использует интенты по умолчанию, поэтому включать привилегированные интенты не нужно.
Запустите бота на PlayNHost
- Откройте сервер в панели. Нажмите Изменить тип сервера на странице Обзор и выберите Python Bot. Делайте это на новом сервере: смена типа переустанавливает его. См. Как сменить тип сервера.
- В Files загрузите
bot.pyиrequirements.txt. - В Настройки, Настройки игры укажите в поле Основной файл значение
bot.pyи вставьте токен в Токен Discord-бота. - Откройте Console и запустите сервер. Сервер устанавливает пакеты из
requirements.txtпри каждом запуске. - Когда консоль покажет
Logged in as ..., введите в Discord/ping.
Полезно знать
- По умолчанию сервер работает на Python 3.12. Если пакету нужна другая версия, выберите 3.10, 3.11, 3.13 или 3.14 в Настройки, Docker-образ.
- Команды, зарегистрированные через
tree.sync(), глобальные, и их появление может занять время. Во время тестирования синхронизируйте их с одним сервером:tree.copy_global_to(guild=discord.Object(id=YOUR_SERVER_ID)), затемawait tree.sync(guild=...). - Читайте ошибки в Console. Отсутствующий пакет означает, что в
requirements.txtне хватает строки.
Ещё: Как запустить Discord-бота на Python, Как использовать базу данных с Discord-ботом.





