【问题标题】:Cannot close a running event loop. Discord bot creation无法关闭正在运行的事件循环。 Discord 机器人创建
【发布时间】:2020-08-02 03:51:22
【问题描述】:

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

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?
  • 我们的 IPython 控制台已经运行了一个 asyncio 事件循环,所以我认为您需要在运行代码之前安装并运行 nest-asyncio
  • 我正在使用 python 3.7.4 在 spyder、anaconda 上运行它。我安装并运行它,但代码仍然不工作
  • 我在导入并应用nest_asyncio后直接遇到了同样的问题。在此之前,我遇到了一个不同的运行时错误,即关于循环已经运行的错误。我找到了一个答案,说 Jupyter Notebook 运行它自己的事件循环,并且 2 在安装 nest_asyncio 之前不能一起运行。所以我安装了它,现在却出现了一个不同但更清晰的错误。我仍然不知道,所以我在这个问题上悬赏。

标签: python-3.x anaconda discord spyder discord.py


【解决方案1】:

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

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

另一个可能的原因(虽然不太可能)是你没有安装 aiohttp(这是 Discord.py Rewrite 需要的 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 = '>')

【讨论】:

    猜你喜欢
    • 2021-01-25
    • 2021-11-17
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 2022-10-30
    相关资源
    最近更新 更多