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

discord.py报错'ClientUser'无send属性且私信无内容如何解决

问题原因
  • 安装的第三方库有误:你执行pip install discord安装的并非官方维护的Discord Python SDK,目前PyPI上的discord包为废弃版本/第三方兼容包,API适配存在缺陷,直接导致发送私信时内容丢失。
  • 未过滤bot自身触发的消息事件:代码未对消息发送者身份做判断,bot发送的私信同样会触发on_message事件,此时mess.author为bot自身的ClientUser对象,该对象不存在send方法,因此抛出AttributeError: 'ClientUser' object has no attribute 'send'报错。
解决方法
  1. 替换为官方维护的discord.py库,执行如下命令:
pip uninstall discord -y
pip install discord.py
  1. 修改on_message函数,新增bot自身消息过滤逻辑,修改后的代码如下:
@client.event
async def on_ready():
    print("bot is online")

@client.event
async def on_message(mess):
    # 过滤bot自身发送的消息,避免异常触发
    if mess.author == client.user:
        return
    m: Message = mess
    await mess.delete()
    await mess.author.send(content="Something here")

client.run(my_bot_token)
  1. 若你安装的是2.0及以上版本的discord.py,需要额外开启消息内容权限:
    首先在Discord开发者后台对应Bot的设置页开启「Message Content Intent」开关,然后初始化Client时传入正确的意图参数:
import discord
from discord import Message

# 配置意图权限
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)

# 后续事件逻辑不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:27:03