微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决PythonDiscord机器人代码返回“ RuntimeError:无法关闭正在运行的事件循环”

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

回溯(最近通话最近一次):

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

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

exec文件中的第110行,文件“ C:\ ProgramData \ Anaconda3 \ lib \ site-packages \ spyder_kernels \ customize \ spydercustomize.py” 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行,正在运行 _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行,关闭 引发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')

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

请帮助。如何摆脱该错误,使其正常运行?

解决方法

(此处为 Spyder维护程序)为了在Spyder中运行异步代码,您需要安装一个名为nest-asyncio的软件包,并将这两行添加为代码中的第一行:

import nest_asyncio
nest_asyncio.apply()
,

我找到了解决方案。我没有使用Spyder的内置控制台,而是使用命令提示符运行我的代码,并且绕过了RuntimeError。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。