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.2
或
discord.py==0.16.12
您确定安装了正确的版本吗?仅仅将它放在您的需求文件中并不能保证您使用的是正确的。使用 pip freeze
检查您安装的内容,然后在必要时卸载旧的异步版本。
上个月我在 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.2
或
discord.py==0.16.12
您确定安装了正确的版本吗?仅仅将它放在您的需求文件中并不能保证您使用的是正确的。使用 pip freeze
检查您安装的内容,然后在必要时卸载旧的异步版本。