【问题标题】:(Python) Discord bot code returns "RuntimeError: Cannot close a running event loop"(Python) Discord 机器人代码返回“RuntimeError:无法关闭正在运行的事件循环”
【发布时间】:2021-01-25 13:38:48
【问题描述】:

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

Traceback(最近一次通话最后一次):

文件“”,第 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(编译(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(循环)

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

文件“C:\ProgramData\Anaconda3\lib\asyncio\selector_events.py”,第 83 行,关闭 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')

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

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

【问题讨论】:

    标签: python runtime-error discord.py python-asyncio spyder


    【解决方案1】:

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

    import nest_asyncio
    nest_asyncio.apply()
    

    【讨论】:

    • 我这样做了,但由于某种原因,我的代码给出了同样的错误。
    • 如果我们尝试在任何其他命令提示符或任何其他框架(如 django 或 flask)或任何其他环境(如 anaconda 或 jupiter)中运行,这可能是解决方案。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-08-02
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 2019-12-29
      • 1970-01-01
      • 2020-06-23
      • 2019-08-09
      • 1970-01-01
      相关资源
      最近更新 更多