Discord机器人出现异步错误

时间:2018-08-07 17:03:29

标签: python python-3.x discord discord.py

每当我运行代码时,async都会出现错误,我已经导入asyncio来尝试解决此问题,但错误不断涌入

import discord
from discord.ext import commands
from discord.ext.commands import Bot
import asyncio

bot = command.Bot(command_prefix="=")

@bot.event
async def on_ready():
    print ("Bot Onine!")
    print ("Hello I Am " + bot.user.name)
    print ("My ID Is " + bot.user.id)

我得到的错误:

async def on_ready():
    ^
SyntaxError: invalid syntax

如果有人知道解决方法,请

1 个答案:

答案 0 :(得分:1)

要使用async关键字,您需要python 3.5或更高版本。如果您使用的是python 3.4或更低版本,则不能使用async

另一种方法是用coroutine装饰该方法。这段代码

@bot.event
async def on_ready():
    ...

成为:

@bot.event
@asyncio.coroutine
def on_ready():
    ....

由于不和谐事件已经需要bot.event装饰器,因此discord.py api提供了async_event装饰器以在一次调用中完成协程和事件装饰,因此您也可以编写它像这样:

@bot.async_event
def on_ready():
    ....

同样,您也不能使用await,因此必须使用yield from

await bot.say('Some response')

成为

yield from bot.say('Some response')