Python 3.x下Discord Bot报错:缺少必填关键字参数'intents'
解决Discord Bot初始化时的intents缺失错误
问题原因
该错误源于discord.py v2.0及以上版本强制要求初始化Client类时必须显式指定intents参数,而原项目代码基于旧版本discord.py开发,未适配这一改动。
修复步骤
1. 修改代码添加intents配置
打开项目的main.py文件,按以下步骤修改:
- 在文件开头导入discord模块(如果未导入):
import discord - 在创建
MyClient实例前,定义并配置intents:# 初始化默认intents intents = discord.Intents.default() # 若Bot需要读取消息内容(部分通知场景可能需要),开启该权限 intents.message_content = True - 修改
MyClient类的初始化方法,接收并传递intents参数:class MyClient(discord.Client): def __init__(self, channel_id, *, intents, **kwargs): self.channel_id = channel_id # 将intents传递给父类Client super().__init__(intents=intents, **kwargs) - 最后修改创建client的代码,传入intents:
# 替换原来的client = MyClient(channel_id) client = MyClient(channel_id, intents=intents)
2. 开启Discord后台对应权限
登录Discord开发者平台,找到你的Bot应用:
- 进入「Privileged Gateway Intents」板块
- 开启「Message Content Intent」权限(若代码中开启了
message_content则必须开启)
备选方案:降级discord.py版本
若不想修改代码,可安装旧版本discord.py(不推荐,旧版本无维护):
pip install discord.py==1.7.3
内容的提问来源于stack exchange,提问作者Amalgama29234
相关产品推荐
相关产品推荐

