Python 将_author设置为discord.py并抛出名称错误

Python 将_author设置为discord.py并抛出名称错误,python,discord,discord.py,Python,Discord,Discord.py,因此,我正在用discord.py编写一个机器人,在编写一个嵌入式ping命令时,我遇到了一些奇怪的错误,我还没有找到在线的复制品 我的进口: 导入不一致 从discord.ext导入命令 从discord.ext.commands导入Bot 导入异步 导入时间 这部分有问题: embed=discord.embed(color=“0xff9999”) @客户端事件 异步def on_消息(消息): channel=message.channel authorID=message.author

因此,我正在用discord.py编写一个机器人,在编写一个嵌入式ping命令时,我遇到了一些奇怪的错误,我还没有找到在线的复制品

我的进口:

导入不一致
从discord.ext导入命令
从discord.ext.commands导入Bot
导入异步
导入时间
这部分有问题:

embed=discord.embed(color=“0xff9999”)
@客户端事件
异步def on_消息(消息):
channel=message.channel
authorID=message.author.id
如果message.content.upper().startswith(“T.PING”):
t1=时间。性能计数器()
等待客户。发送键入(频道)
t2=时间。性能计数器()
embed.add_字段(name=“Ping”,value=“:Ping_pong:| Ponged in{}ms!”。格式(round((t2-t1)*1000)),inline=True)
embed.set_author(name=client.user.name,icon=embed.Empty,icon_url=client.user.avatar_url)
等待客户端。发送消息(通道,嵌入=嵌入)
执行t.ping时,控制台中出现以下名称错误:

Ignoring exception in on_message
Traceback (most recent call last):
    File "C:\Users\Robin Riezebos\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\client.py", line 307, in _run_event
    yield from getattr(self, event)(*args, **kwargs)
    File "C:\Storage\Desktop\Tapebox.py\Tapebox.py", line 32, in on_message
    embed.set_author(name=client.user.name, icon=Embed.Empty, icon_url=client.user.avatar_url)
NameError: name 'Embed' is not defined
我将感谢一些帮助和一个如何解决这个问题的例子

我使用的不是
@client.command
组合,而是
client.event
组合,用于我的命令,它改变了某些方面,但是
嵌入了.set\u author
应该仍然有效


编辑:添加了导入列表,在
@client.event

中添加了if语句的其余部分请注意,在您的
on_message
事件上方,您必须使用
discord.Embed
来解析
Embed
类。您需要直接导入名称
嵌入
,使用

from discord import Embed
或者通过
discord
包参阅
Embed

embed.set_author(name=client.user.name, icon=discord.Embed.Empty, icon_url=client.user.avatar_url)

虽然我不确定这是否必要。我认为
Empty
是默认值,因此您应该能够完全删除
图标
关键字参数。

主要问题是没有定义嵌入。您需要添加:

embed = discord.Embed(title=title, description=description, color=color)
放在哪里?这里

embed = discord.Embed(title=title, description=description, color=color
embed.add_field(name="Ping", value=":ping_pong: | <@" + authorID + "> Ponged in {}ms!".format(round((t2-t1)*1000)), inline=True)
        embed.set_author(name=client.user.name, icon=Embed.Empty, icon_url=client.user.avatar_url)
        await client.send_message(channel, embed=embed)
embed=discord.embed(title=title,description=description,color=color
embed.add_字段(name=“Ping”,value=“:Ping_pong:| Ponged in{}ms!”。格式(round((t2-t1)*1000)),inline=True)
embed.set_author(name=client.user.name,icon=embed.Empty,icon_url=client.user.avatar_url)
等待客户端。发送消息(通道,嵌入=嵌入)

祝你好运!

错误首先是因为
图标
不是关键字。“嵌入”没有定义,但“嵌入”是。以下错误是在执行
图标=嵌入时产生的。空的
name'Embed'未定义
但是,当我们使用
icon=Embed.Empty
时,它会产生以下错误:
set\u author()得到一个意外的关键字参数'icon'
表明图标不是关键字参数

其次,您可能会对
client.avatar\u url
有问题,因为您没有将其声明为字符串,即
str(client.avatar\u url)
嵌入
中的
authorID
[因为
authorID
的初始值是一个整数]。在Python中,只有当值的类型相同时,才可以将它们串联起来

@client.event()
异步def on_消息(消息):
channel=message.channel
authorID=message.author.id
如果message.content.upper().startswith(“T.PING”):
t1=时间。性能计数器()
等待消息。通道。发送(通道)
t2=时间。性能计数器()
嵌入=discord.embed(颜色=0xff9999,title=“”,description=“”)
embed.add_字段(name=“Ping”,value=“:Ping_pong:| Ponged in{}ms!”。格式(round((t2-t1)*1000)),inline=True)
embed.set\u author(name=client.user.name,icon\u url=str(client.user.avatar\u url))
等待message.channel.send(channel,embed=embed)


检查上面的图像,下面的命令将上面的输出提供给我。不确定这是否是您要查找的内容。一定要告诉我!

我们可以看到您
导入
s吗?您可能需要通过
discord.Embed.Empty
来解决它。@PatrickHaugh我添加了更多的基本信息,我发现
图标
不是必要的关键字并返回意外的结果,但我必须将
url
设置为
Embed。在discord import Embed的
之后为空
,请务必解决OP
NameError出现的主要错误:除了您的其他发现之外,没有定义名称“Embed”。“我对您发送的代码进行了一些调试。下面是我得到的结果。错误首先是,因为“icon”不是关键字“我将在我的回答中添加以下内容:“Embed”没有定义,但是“Embed”“使用
icon=Embed执行时会产生以下错误。Empty
名称“Embed”未定义
但是,当我们使用
icon=Embed时,Empty
会产生以下错误:
set\u author()得到一个意外的关键字参数“icon”
,表明icon不是关键字参数。