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

discord.py中user.remove_timeout()无法调用问题求助

Discord.py 解除Timeout时出现remove_timeout方法不存在的错误

我在开发Discord机器人的禁言/解除禁言命令时,user.timeout(time, reason)能正常执行,但调用user.remove_timeout()时触发错误,提示Member类型没有这个方法。

相关代码

@tree.command(name="unmute", description="unmutes a member")
async def unmute(interaction, user: Member):
  if interaction.guild.me.guild_permissions.moderate_members:
    if interaction.user.guild_permissions.moderate_members:
      await user.remove_timeout()
      await interaction.response.send_message(f"{user.mention} has been unmuted successfully!")

错误信息

Cannot access member "remove_timeout" for type "Member"
  Member "remove_timeout" is unknown

问题原因

这个问题是因为你使用的discord.py版本过低,remove_timeout()方法是discord.py 2.0及以上版本才新增的API,旧版本的Member类没有这个方法。而timeout()方法在更早的版本就已存在,所以能正常工作。

解决方案

有两种处理方式:

1. 升级discord.py到最新版本

在终端执行以下命令完成升级:

pip install -U discord.py

升级后原有代码无需修改即可正常运行。

2. 使用旧版本兼容的替代方法

如果暂时不想升级版本,可以通过调用timeout(None)来解除用户的禁言,这是旧版本中解除timeout的标准方式:

@tree.command(name="unmute", description="unmutes a member")
async def unmute(interaction, user: Member):
  if interaction.guild.me.guild_permissions.moderate_members:
    if interaction.user.guild_permissions.moderate_members:
      # 用timeout(None)替代remove_timeout()
      await user.timeout(None)
      await interaction.response.send_message(f"{user.mention} has been unmuted successfully!")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 18:42:06