首页 > 解决方案 > 无法关闭正在运行的事件循环。Discord 机器人创建

问题描述

我尝试了一些不同的代码,但它们似乎都给了我同样的错误。

import discord

client = discord.Client()
client.run("TheBotTokenzzzInQuotes")

它给了我这个错误

File "<ipython-input-1-1f31c2ad1160>", line 1, in <module>
    runfile('C:/Users/Lenovo/Desktop/bot.py', wdir='C:/Users/Lenovo/Desktop')

      File "C:\Users\Lenovo\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
        execfile(filename, namespace)

      File "C:\Users\Lenovo\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
        exec(compile(f.read(), filename, 'exec'), namespace)

      File "C:/Users/Lenovo/Desktop/bot.py", line 4, in <module>
        client.run("token")

      File "C:\Users\Lenovo\Anaconda3\lib\site-packages\discord\client.py", line 637, in run
        _cleanup_loop(loop)

      File "C:\Users\Lenovo\Anaconda3\lib\site-packages\discord\client.py", line 97, in _cleanup_loop
        loop.close()

      File "C:\Users\Lenovo\Anaconda3\lib\asyncio\selector_events.py", line 83, in close
        raise RuntimeError("Cannot close a running event loop")

    RuntimeError: Cannot close a running event loop

标签: python-3.xanacondadiscordspyderdiscord.py

解决方案


我有自己运行的不和谐机器人,老实说,我的客户端变量看起来不像那样。

如果您没有使用“Discord.py Rewrite”,则可能是失败的原因。

另一个可能的原因(虽然不太可能)是您没有安装 aiohttp(这是 Discord.py 重写所需的 asyncio 依赖项),您可以使用以下命令安装它:

pip install aiohttp

如果您想查看一个示例机器人,我在下面列出了一个直接来自 discord.py Rewrite(python 当前支持的版本)开发人员的机器人。

https://github.com/Rapptz/discord.py/blob/master/examples/basic_bot.py

如果您想知道我的代码的开头是什么样的,我在下面有它:

import discord
from discord.ext import commands
from discord.utils import get

client = commands.Bot(command_prefix = '>')

推荐阅读