Python 继续在_ready()上获取有关异步定义的语法错误:同时创建discord bot
我已经学习了一点python,并决定利用我所学的知识构建一个discord机器人来测试我的能力。我已经编写了所有代码,对我来说看起来很好(我确信这并不意味着什么),但每次尝试运行它时,我都会得到一个语法错误代码。所以,我把它缩小到最小值,它仍然不能工作。我已经研究了很多问题,我发现当您没有使用Python的更新版本时,通常会发生这种情况,但我已经三次检查了我是否确实在运行Python 3.6.4 以下是我所拥有的:Python 继续在_ready()上获取有关异步定义的语法错误:同时创建discord bot,python,bots,discord,discord.py,Python,Bots,Discord,Discord.py,我已经学习了一点python,并决定利用我所学的知识构建一个discord机器人来测试我的能力。我已经编写了所有代码,对我来说看起来很好(我确信这并不意味着什么),但每次尝试运行它时,我都会得到一个语法错误代码。所以,我把它缩小到最小值,它仍然不能工作。我已经研究了很多问题,我发现当您没有使用Python的更新版本时,通常会发生这种情况,但我已经三次检查了我是否确实在运行Python 3.6.4 以下是我所拥有的: import discord import discord.ext.comman
import discord
import discord.ext.commands
from discord.ext.commands import Bot
import asyncio
bot = commands.Bot(command_prefix='!')
@bot.event
async def on_ready():
print ("Bot Online!")
print (bot.user.name)
bot.run("token was here")
当我通过Python Launcher运行它时,这是我的错误:
Kalyns-MacBook-Air:~ kalynwoodbury$ cd
'/Users/kalynwoodbury/Desktop/bot2/' && '/usr/bin/pythonw'
'/Users/kalynwoodbury/Desktop/bot2/Bot1.py' && echo Exit status: $? && exit 1
File "/Users/kalynwoodbury/Desktop/bot2/Bot1.py", line 9
async def on_ready():
^
SyntaxError: invalid syntax
Kalyns-MacBook-Air:bot2 kalynwoodbury$
我做错了什么
编辑:应用程序显示Python 3.6。昨天我卸载并再次下载了它,确保按3.6.4,安装程序显示为Python 3.6.4。我一生中从未对任何事情如此确信过。确保我有正确的版本绝对是我首先要寻找的
编辑:如果我尝试使用python3 bot.py,它会给我相同的错误代码,但对于那一行。我认为问题出在您的导入中。当我运行相同的代码时,我得到一个关于命令前缀的错误信息。我认为异步不应该有任何问题,因为您已经导入了它。请尝试以下代码:
import discord
from discord.ext.commands import Bot
from discord.ext import commands
import asyncio
bot = commands.Bot(command_prefix='!')
@bot.event
async def on_ready():
print ("Bot Online!")
print (bot.user.name)
bot.run("TOKEN GOES HERE")
我认为当您使用命令前缀时,代码是混乱的,因为从未导入任何包含命令前缀的内容。您应该从discord.ext导入命令来执行导入discord.ext.commands,而不是执行导入discord.ext.commands。如何确认您正在使用Python 3.6.4运行?如果您运行的是3.5以上的版本,它将正常工作。尝试在函数定义上方添加@asyncio.coroutine。运行bot的命令可能重复,这看起来很奇怪。当您只需执行python3 bot.py(或任何文件名)时会发生什么情况。同样的问题,您解决了吗?