Discord Python 异步事件循环已关闭

Posted

技术标签:

【中文标题】Discord Python 异步事件循环已关闭【英文标题】:Discord Python Async Event Loop is Closed 【发布时间】:2020-12-08 16:41:36 【问题描述】:

程序结束时出现以下错误。

错误:

RuntimeError: Event loop is closed

代码:

    client = discord.Client()
@client.event
async def on_ready():
    amount2 = 0
    for guild in client.guilds:
        for member in guild.members:
            members.insert(amount2, member)  # or do whatever you wish with the member detail
            amount2 = amount2 + 1
    await client.close()
client.run(TOKEN)

我该如何解决?

【问题讨论】:

await client.close() 应该是它发生的原因。 否则此代码不会停止。我所需要的只是获取成员并阻止此代码继续前进 你的意思是它不会停止? on_ready 事件仅在机器人启动时运行一次。 我不希望机器人一直运行,我希望它只捕获成员并停止。 【参考方案1】:

我得到了同样的错误,并注意到它在调试时没有发生,所以我在关闭调用之后添加了一个 sleep(1):

await client.close()
time.sleep(1)

【讨论】:

以上是关于Discord Python 异步事件循环已关闭的主要内容,如果未能解决你的问题,请参考以下文章

Discord.py - 重新启动命令错误 - RuntimeError:事件循环已关闭

在异步事件循环中运行 .render()(来自 requests_html)时,我收到错误“此事件循环已在运行”

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

Python Asyncio 错误:“OSError:[WinError 6] 句柄无效”和“RuntimeError:事件循环已关闭”[重复]

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

Python异步通信模块asyncore