
PyCord 默认不提供名为 help 的内置斜杠命令,需手动注册;若启用默认帮助系统则需禁用并自行实现,否则会触发 CommandNotFound 错误。
pycord 默认不提供名为 `help` 的内置斜杠命令,需手动注册;若启用默认帮助系统则需禁用并自行实现,否则会触发 commandnotfound 错误。
在 PyCord 中,/help 并非开箱即用的预设斜杠命令——它与传统 !help 文本命令不同,不会自动注册。你遇到的 CommandNotFound: Command "help" is not found 错误,正是因为 Bot 实例未声明该斜杠命令,或与默认帮助系统发生冲突。
✅ 正确实现步骤
-
禁用默认帮助命令(关键)
PyCord 的 commands.Bot 默认会注册一个文本型 help 命令(基于 commands.DefaultHelpCommand),但它不响应斜杠指令,且可能干扰同名 slash command 的注册。因此,初始化 Bot 时必须显式关闭:import discord from discord import commands bot = commands.Bot( command_prefix="!", # 仅用于文本命令(可选) intents=discord.Intents.default(), help_command=None # ? 关键:禁用默认 help 命令 ) -
注册自定义斜杠命令
使用 @bot.slash_command() 装饰器定义 /help,确保函数名与 name 参数一致(推荐使用 help_command 等语义化名称避免命名冲突):@bot.slash_command(name="help", description="获取帮助视频") async def help_command(ctx: discord.ApplicationContext): user_mention = ctx.author.mention embed = discord.Embed( title="? 帮助视频", description=f"{user_mention},请观看以下教程视频:", color=discord.Color.blue() ) embed.add_field( name="? 视频链接", value="[点击此处观看](https://cdn.discordapp.com/attachments/993834541103976449/1193685361369563176/SPOILER_JOSH-1.mp4)", inline=False ) await ctx.respond(embed=embed, ephemeral=False) # ephemeral=False 允许所有人可见 -
注意事项
- ❌ 不要将函数命名为 help(如 async def help(...)),因 Python 中 help 是内置函数,易引发意外行为;
- ✅ 确保 bot 实例在注册命令之前已设置 help_command=None;
- ⚠️ 若项目中同时使用文本命令和斜杠命令,请确认 command_prefix 和 intents 配置正确,避免权限或事件监听失败;
- ? 视频链接需为公开可访问的 Discord CDN 地址(如示例),私有附件或过期链接将无法加载。
? 补充建议
官方文档明确指出:不推荐完全替换默认帮助系统(详见 PyCord Help Command 指南)。对于复杂 Bot,建议保留默认文本帮助,并额外提供 /help-video 等专用斜杠命令,兼顾功能清晰性与用户体验。
完成上述配置后,重启 Bot 并等待 Discord 应用端同步(通常需 1 小时内生效),即可正常使用 /help 斜杠命令。

















