Discord.py重写“上下文”对象没有属性“发送”

时间:2019-01-25 08:38:48

标签: heroku discord discord.py-rewrite

上个月,我在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)

2 个答案:

答案 0 :(得分:0)

仅当您安装了discord.py的{​​{3}}并且正在使用async version功能时,才会发生此类错误

仔细检查requirements.txt文件的名称(在问题中已将其命名为requirement.txt),并检查该文件是否仍不包含discord==0.0.2discord.py==0.16.12

答案 1 :(得分:0)

您确定安装了正确的版本吗?仅将其包含在需求文件中并不能保证您使用的是正确的文件。检查您使用pip freeze安装了什么,然后根据需要卸载旧的异步版本。