Python编写的Discord Bot无法执行简单命令问题求助
问题修复说明
核心错误1:实例启动逻辑错误
commands.Bot 是 discord.Client 的子类,你将命令注册在了 bot 实例上,但最后启动的是完全独立的 client 实例,注册的命令自然不会被触发,不需要额外创建discord.Client实例。
核心错误2:缺少必要的网关意图配置
discord.py v2.0及以上版本要求显式声明读取消息内容的意图,否则Bot无法识别消息中的命令前缀,同时需要提前在Discord开发者后台的对应Bot设置页开启「Message Content Intent」权限。
修复后可运行代码
import discord from discord.ext import commands # 声明必要的网关意图 intents = discord.Intents.default() intents.message_content = True # 初始化Bot实例,无需额外创建Client bot = commands.Bot(command_prefix="!", intents=intents) @bot.command() async def test(ctx, arg): await ctx.send(arg) # 替换为你的实际Bot Token,启动bot实例 token = "你的Bot Token" bot.run(token)
额外检查项
- 确保Bot已被邀请到目标服务器,且拥有发送消息的权限
- 确保Discord开发者后台的Bot设置中,「Message Content Intent」开关已开启
- 输入命令时前缀与设置的
!完全匹配,无多余空格
内容的提问来源于stack exchange,提问作者Kiddanube4
相关产品推荐
相关产品推荐

