Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 继续在_ready()上获取有关异步定义的语法错误:同时创建discord bot_Python_Bots_Discord_Discord.py - Fatal编程技术网

Python 继续在_ready()上获取有关异步定义的语法错误:同时创建discord bot

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

我已经学习了一点python,并决定利用我所学的知识构建一个discord机器人来测试我的能力。我已经编写了所有代码,对我来说看起来很好(我确信这并不意味着什么),但每次尝试运行它时,我都会得到一个语法错误代码。所以,我把它缩小到最小值,它仍然不能工作。我已经研究了很多问题,我发现当您没有使用Python的更新版本时,通常会发生这种情况,但我已经三次检查了我是否确实在运行Python 3.6.4

以下是我所拥有的:

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(或任何文件名)时会发生什么情况。同样的问题,您解决了吗?