(Python) Discord 机器人代码返回“RuntimeError: 无法关闭正在运行的事件循环”

Sag*_*max 2 python runtime-error spyder python-asyncio discord.py

我试图在 Spyder 中创建代码来启动我的不和谐机器人,但遇到以下错误:

回溯(最近一次调用最后一次):

文件“”,第 1 行,在 runfile('C:/Users/Nathan/Desktop/HW/Python stuff/my_discord_bot.py', wdir='C:/Users/Nathan/Desktop/HW/Python stuff')

文件“C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py”,第 827 行,在运行文件 execfile(文件名,命名空间)中

文件“C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py”,第 110 行,在 execfile exec(compile(f.read(),文件名,'exec'),命名空间)

文件“C:/Users/Nathan/Desktop/HW/Python stuff/my_discord_bot.py”,第 17 行,在 client.run('我的应用程序令牌')

文件“C:\ProgramData\Anaconda3\lib\site-packages\discord\client.py”,第 705 行,在 run _cleanup_loop(loop) 中

文件“C:\ProgramData\Anaconda3\lib\site-packages\discord\client.py”,第 98 行,在 _cleanup_loop Loop.close() 中

文件“C:\ProgramData\Anaconda3\lib\asyncio\selector_events.py”,第 83 行,在 close raise RuntimeError(“无法关闭正在运行的事件循环”)

RuntimeError:无法关闭正在运行的事件循环

我在网上搜索过,有人告诉我使用一个名为“nest_asyncio”的包。我 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')
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我用“我的应用程序令牌”替换了我的实际令牌,因为我不想与任何人共享它。

请帮忙。如何消除此错误并使其正常运行?

Car*_*oba 6

这里是 Spyder 维护者)为了在 Spyder 中运行异步代码,您需要安装一个名为Nest-asyncio的包,并将这两行添加到代码的第一行:

import nest_asyncio
nest_asyncio.apply()
Run Code Online (Sandbox Code Playgroud)