Discord.py重写'Context'对象没有属性'send'

Discord.py rewrite 'Context' object has no attribute 'send'

上个月我在 heroku 上托管了一个 Discord.py(异步版本)bot,它运行良好,这个月我将我的 bot 从异步更新为重写,但它并没有真正起作用。

在我的 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)

这种类型的错误只会在您具有 async version of discord.py installed and are using rewrite 功能时发生

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

您确定安装了正确的版本吗?仅仅将它放在您的需求文件中并不能保证您使用的是正确的。使用 pip freeze 检查您安装的内容,然后在必要时卸载旧的异步版本。