(Python)不一致bot代码返回";运行错误:无法关闭正在运行的事件循环";
问题描述
我尝试在Spyder中创建代码以启动Discord机器人,但遇到以下错误:
回溯(最近一次调用):
文件第1行,第1行,中 Runfile(‘C:/USERS/Nathan/Desktop/hw/Python Stuff/my_discord_bot.py’,wdir=‘C:/USERS/Nathan/Desktop/hw/Python Stuff’) 在运行文件中保存";C:ProgramDataAnaconda3libsite-packagesspyder_kernelscustomizespydercustomize.py";,第827行 Execfile(文件名,命名空间) 文件";C:ProgramDataAnaconda3libsite-packagesspyder_kernelscustomizespydercustomize.py";,第110行,在EXECFILE中 Exec(编译(f.read(),文件名,‘exec’),命名空间) 文件C:/USERS/Nathan/Desktop/hw/PythonStuff/my_discord_bot.py&;第17行,in Client.run(‘我的应用程序令牌’) 文件";C:ProgramDataAnaconda3libsite-packagesdiscordclient.py";,第705行,在运行中 _CLEANUP_LOOP(LOOP) 文件清理循环第98行,in_";C:ProgramDataAnaconda3libsite-packagesdiscordclient.py";,_loop Loop.lose() 将";C:ProgramDataAnaconda3libasyncioselector_events.py";,第83行归档到结尾处 引发运行错误(";无法关闭正在运行的事件循环)运行错误:无法关闭正在运行的事件循环
我在网上搜索过,有人告诉我使用一个名为&Nest_asyncio&qot;的包。我通过pip安装了包,导入了它,并在控制台中运行了nest_asyncio.Apply(),但再次运行后代码仍然给出了相同的错误。
这是我的代码:
import discord
from discord.ext import commands
client = commands.Bot(command_prefix = '.')
@client.event
async def on_ready():
print ('Bot is ready.')
client.run('my application token')
顺便说一句,我将实际令牌替换为";我的应用程序令牌&,因为我不想与任何人共享它。
请帮帮忙。如何消除此错误并使其正常运行?
Spyder
(推荐答案Maintainer Here)为了在Spyder中运行异步代码,您需要安装一个名为nest-asyncio的包,并将以下两行添加到代码中的第一行:
import nest_asyncio
nest_asyncio.apply()
相关文章