You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.py机器人指令不响应且停止时报Event loop is closed错误

前缀指令无响应解决方案

导致该问题有两个核心原因:

  • 自定义on_message事件未兼容指令处理逻辑:discord.py框架中如果手动重写on_message事件,会覆盖默认的前缀指令匹配流程,需要在事件逻辑末尾手动调用指令处理方法才能让自定义指令生效。
  • 代码未启用message_content权限:discord.py 2.0及以上版本中,discord.Intents.default()默认不会开启消息内容读取权限,即便你在Discord开发者后台开启了对应权限,也需要在代码中手动配置启用。

修改后的对应代码段如下:

# intents配置修改
intents = discord.Intents.default()
intents.typing = False
intents.message_content = True # 新增该行启用消息内容读取权限
client = commands.Bot(command_prefix="!", intents=intents)

# on_message事件修改
@client.event
async def on_message(message):
    if message.author == client.user:
        return
    await client.process_commands(message) # 新增该行调用指令处理逻辑
停止运行时报Event loop is closed解决方案

该报错是Windows系统下Python 3.8+版本与discord.py默认事件循环兼容的已知问题,可任选以下一种方法修复:

  • 方法一:修改机器人启动参数,禁用默认日志处理器
# 将原有client.run(TOKEN)替换为下行
client.run(TOKEN, log_handler=None)
  • 方法二:修改系统默认事件循环策略,在代码最开头添加如下配置即可
import asyncio
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())

内容的提问来源于stack exchange,提问作者Witalik Zarscikov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:57:03