Не работает discord-бот на Python
Сделал простенького дискорд-бота на Python (скорее заготовку с парой функций). Полный код бота прилагается:
import discord
import asyncio
import random
from discord.ext import commands
TOKEN = 'токен....'
bot = commands.Bot(command_prefix='/')
coinVars = ['ОРЁЛ', 'РЕШКА']
@bot.command()
async def random(ctx):
await ctx.send(random.randint(1, 1000))
@bot.command(pass_context=True)
async def info(ctx,infovar):
await ctx.send('Вероятность того, что', infovar, 'равна',random.randint(1, 100), '%' )
@bot.command()
async def coin(ctx):
await ctx.send(random.choise(coinVars))
bot.run(TOKEN)
Подключил к серверу, запустил файл на ПК. Бот активировался, но при вводе команды (например /random) пишет в консоли следующее:
Ignoring exception in command random:
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\core.py", line 83, in wrapped
ret = await coro(*args, **kwargs)
File "C:\DiscordBotHellHoma\Bot.py", line 12, in random
await ctx.send(random.randint(1, 1000))
AttributeError: 'Command' object has no attribute 'randint'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\bot.py", line 892, in invoke
await ctx.command.invoke(ctx)
File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\core.py", line 797, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\core.py", line 92, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Command' object has no attribute 'randint'
В чём может быть проблема и как её решить?
Ответы (1 шт):
Автор решения: AlexMTX
→ Ссылка
Ты в коде переопределяешь модуль random функцией async def random(ctx):
У этой функции нет ожидаемо randint. Назови свою функцию по-другому, например async def get_random(ctx):