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

Discord bot修复intents报错后运行不响应命令问题

问题现象
  • 初始阶段Discord机器人在Replit平台运行完全正常,后续将项目迁移至本地设备运行
  • 本地首次使用Python IDLE 3.10.1运行代码时功能正常,切换至VS Code、调用相同Python解释器运行代码时抛出如下报错:
TypeError: Client.__init__() missing 1 required keyword-only argument: 'intents'
  • 报错指向代码行:
client = discord.Client()
  • 该报错首次在VS Code环境触发后,原本可正常运行代码的Python IDLE环境运行同份代码也出现完全相同的报错
  • 参考通用方案将代码修改为如下内容后,初始化报错消失,控制台显示机器人处于运行状态:
client = discord.Client(intents=discord.Intents.default())
  • 修复初始化报错后存在两个异常:
    • 机器人正式启动前控制台会输出权限相关异常提示
    • 机器人显示在线但无法响应任何已配置的命令
  • 最终状态:修复初始化报错后,机器人在IDLE、VS Code两个本地环境均无法正常响应指令。
故障原因
  1. 触发intents参数缺失报错的核心原因是discord.py依赖版本升级:你本地两个编辑器共用同一个全局Python环境,首次在VS Code运行时,环境自动拉取安装了2.0及以上版本的discord.py,覆盖了原本安装的1.x旧版本。discord.py从2.0版本开始将intents设为Client初始化的必填关键字参数,旧的无参写法直接报错,且版本升级后IDLE调用的是同个环境的依赖,自然也会触发相同报错,和使用什么编辑器没有关系。
  2. 修复初始化报错后机器人无响应的原因是权限配置不全:discord.Intents.default()默认关闭了消息内容读取等特权网关权限,同时这类权限还需要在Discord开发者后台手动开启对应开关,否则Discord官方服务器不会向机器人推送消息内容、成员变动等事件数据,机器人收不到消息自然没法识别并响应命令,启动前的异常提示也是在提示缺少对应权限配置。
修复步骤
  • 第一步:调整客户端初始化代码,按需开启intents权限,普通前缀命令机器人可直接参考如下写法:
# 初始化默认intents配置
intents = discord.Intents.default()
# 开启消息内容读取权限,前缀命令必须开启该配置
intents.message_content = True
# 若需要使用成员加入/离开、成员列表查询等功能,可额外开启下方配置
# intents.members = True

client = discord.Client(intents=intents)
  • 第二步:登录Discord开发者平台,进入对应机器人的应用管理页:
    • 左侧菜单栏选择「Bot」选项
    • 下拉页面找到「Privileged Gateway Intents」板块
    • 开启「Message Content Intent」开关,若需要使用成员相关功能则同步开启「Server Members Intent」开关
    • 保存页面配置
  • 第三步:终止当前机器人进程,重新运行代码即可正常响应命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:39:20