RuntimeWarning:协程“Messageable.send”从未等待 python.py
Posted
技术标签:
【中文标题】RuntimeWarning:协程“Messageable.send”从未等待 python.py【英文标题】:RuntimeWarning: coroutine 'Messageable.send' was never awaited python.py 【发布时间】:2022-01-20 22:07:09 【问题描述】:我有一个 discord.py Python 脚本,但它不发送消息并出现此错误:
RuntimeWarning: coroutine 'Messageable.send' was never awaited
我的代码:
@client.command()
async def shift(ctx, time=None, shifts=None):
if time is None:
f=open('times.json')
lines=f.readlines()
print(lines[1])
print(lines[2])
embed=discord.Embed(title="Shift Infos für diesen Tag")
embed.add_field(name="Zeit", value=f"time", inline=False)
embed.add_field(name="Shift", value=f"shifts", inline=False)
embed.add_field(name="Game", value="https://web.roblox.com/games/8063846199/VWS-Verkehrsbetriebe-Beta", inline=False)
await ctx.send(embed=embed)
else:
if shift is None:
ctx.send("Bitte gebe ein ob heute eine Shift ist. (Ja oder Nein)")
else:
ctx.send(f"Neue Shift Einstellung: Zeit: time shifts")
with open('times.json', 'a') as the_file:
the_file.write(f'time\n')
the_file.write(f'shifts')
【问题讨论】:
【参考方案1】:您的错误消息已经告诉您解决方案。send
是异步的,因此您必须await
它,就像您发送嵌入时一样。
else:
if shift is None:
await ctx.send("Bitte gebe ein ob heute eine Shift ist. (Ja oder Nein)")
else:
await ctx.send(f"Neue Shift Einstellung: Zeit: time shifts")
https://discordpy.readthedocs.io/en/master/api.html?highlight=send#discord.abc.Messageable.send
还有一个不相关的说明:您打开文件但从不在第一个 if 块中关闭它。考虑使用上下文管理器,就像您在上一个 else 块中所做的那样。
【讨论】:
【参考方案2】:@client.command()
async def shift(ctx, time=None, shifts=None):
if time is None:
f=open('times.json')
lines=f.readlines()
print(lines[1])
print(lines[2])
embed=discord.Embed(title="Shift Infos für diesen Tag")
embed.add_field(name="Zeit", value=f"time", inline=False)
embed.add_field(name="Shift", value=f"shifts", inline=False)
embed.add_field(name="Game", value="https://web.roblox.com/games/8063846199/VWS-Verkehrsbetriebe-Beta", inline=False)
await ctx.send(embed=embed)
else:
if shift is None:
await ctx.send("Bitte gebe ein ob heute eine Shift ist. (Ja oder Nein)")
else:
await ctx.send(f"Neue Shift Einstellung: Zeit: time shifts")
with open('times.json', 'a') as the_file:
the_file.write(f'time\n')
the_file.write(f'shifts')
【讨论】:
以上是关于RuntimeWarning:协程“Messageable.send”从未等待 python.py的主要内容,如果未能解决你的问题,请参考以下文章
Tornado websocket 客户端:如何异步 on_message? (从未等待协程)
如何修复'RuntimeWarning:在 double_scalars 中遇到的除以零'
Pycharm 更新到 2016.2 后导入 RuntimeWarning
Django 中 DateField 的 RuntimeWarning