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

discord.py的Embed嵌入消息添加本地文件失败,如何修复对应代码?

问题排查&修正方案

你的代码存在3个核心错误,按优先级修改即可:

  • 命令装饰器语法错误
    @client.command 是未完成的装饰器写法,必须补充括号才会完成命令注册,正确写法为 @client.command()
  • Embed引用本地文件的格式错误
    Embed的set_image方法不支持读取你本地磁盘的绝对路径,你已经将图片作为附件上传,需要用attachment://<上传时指定的filename>格式引用附件,这里你上传时指定了filename为image.jpg,所以url应该填attachment://image.jpg
  • Windows路径转义风险
    Windows下路径的反斜杠\会被Python识别为转义字符,需要在路径字符串前加r标记为原始字符串,避免转义异常。

修正后完整代码

import discord
from discord.ext import commands

# 补充intents配置,避免2.0+版本discord.py权限校验失败
client = commands.Bot(command_prefix="!", intents=discord.Intents.all())

@client.command()
async def pika(ctx):
  # 加r标记为原始字符串,避免转义错误
  file = discord.File(r"E:\Python\discord.py\Pikachu1.jpg", filename="image.jpg")
  embed = discord.Embed(color=0xFFFFFF)
  # 用attachment协议引用已上传的附件
  embed.set_image(url="attachment://image.jpg")
  await ctx.send(file=file, embed=embed)

client.run("你的机器人令牌")

补充说明:如果使用2.0及以上版本的discord.py,除了代码中配置intents,还需要在Discord开发者后台的机器人设置页开启对应权限开关,否则命令会无响应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:45:03