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

discord.py头像命令运行报错:'Member'对象无avatar_url属性

问题原因
  • 核心原因是你使用的discord.py版本已升级至2.0及以上版本,该版本进行了不兼容的API调整:旧版本v1.x中Member对象的avatar_url属性已被正式移除,不再支持调用。
  • 你的原有代码还存在逻辑缺陷:当未传入用户参数、user为None时,发送提示文本后没有终止函数执行,会继续尝试访问user的属性,额外触发NoneType对象属性访问错误。
解决方案

按以下两点调整代码即可修复问题:

  1. 替换头像属性调用方式:将user.avatar_url替换为user.avatar.url,同时添加兜底逻辑,当用户没有设置自定义头像时自动获取系统默认头像地址。
  2. 补充逻辑终止语句:用户参数为空时发送提示后,添加return终止后续代码执行。

修正后可正常运行的完整代码如下:

import discord
from discord.ext import commands
intents = discord.Intents.default()
intents.members = True

client = commands.Bot(command_prefix="p!", intents=intents)

@client.command()
async def avatar(ctx, user:discord.Member=None):
    if user is None:
        await ctx.send("Invalid user!")
        return
    avatar_url = user.avatar.url if user.avatar else user.default_avatar.url
    await ctx.send(avatar_url)

client.run('xxxxx')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:36:04