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

为何调用discord.py的change_presence()会触发TypeError错误?

报错原因及解决方案

出现TypeError: Client.change_presence() got an unexpected keyword argument 'status'的核心原因是Discord.py版本的API差异:

  • 若你使用的是Discord.py v0.10.x及更早版本:change_presence()仅用于设置机器人的游戏活动(如"Playing XXX"),不支持status参数。要设置在线状态(dnd、idle等),需要调用change_status()方法。
  • 若你使用的是Discord.py v1.0+版本:change_status()已被废弃,状态设置功能整合到了change_presence()中,此时该方法支持status关键字参数。你的代码写法本身是正确的,报错说明你安装的是旧版本库。

修复方案

  1. 如果你想继续使用旧版本库,修改代码为:
@bot.event
async def on_ready():
    status = discord.Status.dnd
    await bot.change_status(status)
    print("Successfully Logged in")
  1. 如果你想使用新版本的API,升级Discord.py:
pip install --upgrade discord.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 13:01:15