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

Python开发Discord机器人报event()缺失coro参数错误无法启动求助

报错根因

  • bot.event 属于不需要传参的装饰器,直接使用即可不需要加括号执行,你代码中@bot.event()的多余括号是触发本次报错的直接原因:装饰器执行时会要求传入协程对象作为参数,你没有传入就抛出了参数缺失的错误。
  • 额外的潜在问题:on_message事件回调必须接收message参数用来承载触发事件的消息实例,你当前的函数定义没有声明该参数,修复装饰器问题后依然会触发参数不匹配错误。如果你的代码后续需要响应!开头的命令,还需要在on_message逻辑末尾加await bot.process_commands(message),否则注册的命令会全部失效。
  • 新版本discord.py要求显式声明intents权限,否则很多事件无法正常触发,建议初始化Bot时补充intents配置避免后续出现无报错但功能不生效的问题。

修复后完整代码

# -*- coding: utf-8 -*-
import discord
from discord.ext import commands
from config import token
import youtube_dl
import os

# 显式声明intents权限,也可以根据需求按需开启对应权限,不用全开
bot = commands.Bot(command_prefix='!', intents=discord.Intents.all()) 

@bot.event
async def on_ready():
    print('bot online!')

@bot.event # 去掉多余的括号
async def on_message(message): # 补充必填的message参数
    print('New Message!')
    # 保留命令响应能力,不需要响应命令可以删掉这行
    await bot.process_commands(message)

bot.run(token)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:27:02