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

如何修复Discord音乐机器人VoiceState对象无voice_channel属性报错

错误原因

这个报错来自discord.py版本迭代带来的API变更:你当前使用的是v1.0及以上的新版discord.py,旧版v0.16.x中VoiceState对象的voice_channel属性在新版里已被重命名为channel,同时旧的客户端加入语音方法client.join_voice_channel也已废弃。

修复代码

直接替换你的join命令代码即可:

from discord.ext import commands
import random
import youtube_dl

# 新版discord.py默认传递ctx,不需要额外配置pass_context=True
@client.command()
async def join(ctx):
    # 先判断调用命令的用户是否已加入语音频道,避免额外报错
    if not ctx.author.voice:
        await ctx.send("请先加入一个语音频道再使用该命令")
        return
    # 新版API使用voice.channel获取用户所在语音频道
    channel = ctx.author.voice.channel
    # 新版加入语音频道的方法为频道对象的connect方法
    await channel.connect()
补充说明
  • 若你坚持使用旧版语法,可执行pip install discord.py==0.16.12降级库版本,但旧版本已停止维护,存在兼容和安全风险,不推荐。
  • 请确保你的机器人账号已被授予语音频道的连接、发言权限,否则即使代码正确也无法正常加入频道。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 04:12:02