上个月,我在heroku上托管了一个Discord.py(异步版本)的bot,它运行良好,这个月我将其bot从async更新为可重写,但实际上并没有用。
在我的requirements.txt
文件中,我已经将git+https://github.com/Rapptz/discord.py@rewrite#egg=discord.py[voice]
放入了,但是它不起作用。
我总是会收到此错误:
2019-01-25T08:30:23.592293+00:00 app[worker.1]: Traceback (most recent call last):
2019-01-25T08:30:23.592356+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/discord/ext/commands/bot.py", line 846, in process_commands
2019-01-25T08:30:23.592358+00:00 app[worker.1]: yield from command.invoke(ctx)
2019-01-25T08:30:23.592363+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/discord/ext/commands/core.py", line 374, in invoke
2019-01-25T08:30:23.592365+00:00 app[worker.1]: yield from injected(*ctx.args, **ctx.kwargs)
2019-01-25T08:30:23.592395+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/discord/ext/commands/core.py", line 54, in wrapped
2019-01-25T08:30:23.592397+00:00 app[worker.1]: raise CommandInvokeError(e) from e
2019-01-25T08:30:23.592435+00:00 app[worker.1]: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Context' object has no attribute 'send'
脚本:
print("Loading Script")
print("Loading Libs")
import discord
import random
from discord.ext import commands
print("Loading Bot")
bot = commands.Bot(command_prefix='!')
@bot.event
async def on_ready():
print("Online!")
@bot.command()
async def rps(ctx):
rpsa = ["Rock", "Paper", "Scissors"]
rpsr = random.choice(rpsa)
await ctx.send(rpsr)
bot.run(Token)
答案 0 :(得分:0)
仅当您安装了discord.py
的{{3}}并且正在使用async version功能时,才会发生此类错误
仔细检查requirements.txt
文件的名称(在问题中已将其命名为requirement.txt
),并检查该文件是否仍不包含discord==0.0.2
或
discord.py==0.16.12
答案 1 :(得分:0)
您确定安装了正确的版本吗?仅将其包含在需求文件中并不能保证您使用的是正确的文件。检查您使用pip freeze
安装了什么,然后根据需要卸载旧的异步版本。