对象非类型不能用于“wait”表达式

2024-05-16 14:55:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我是编程discord机器人的新手,对python知之甚少。我一直在尝试编写一个机器人程序,向新成员发送欢迎图片。我使用枕头进行图像处理,在我创建的测试文件中,它似乎工作得很好。然而,当我将其添加到bot并尝试邀请某人时,错误就出现了

Ignoring exception in on_member_join Traceback (most recent call last): File "C:\Users\nam\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\client.py", line 343, in _run_event await coro(*args, **kwargs) File "C:\Users\nam\PyCharmProjects\lian_bot\bot.py", line 44, in on_member_join await client.send_file(channel, 'welcome.png') TypeError: object NoneType can't be used in 'await' expression

不断出现。 我在这个地区是个十足的乞丐

代码如下:

@client.event
async def on_member_join(member):
    channel = client.get_channel("866789191269220382")

    url = requests.get(member.avatar_url)
    avatar = Image.open(BytesIO(url.content))
    avatar = avatar.resize((300, 300));
    bigsize = (avatar.size[0] * 3, avatar.size[1] * 3)
    mask = Image.new('L', bigsize, 0)
    draw = ImageDraw.Draw(mask)
    draw.ellipse((0, 0) + bigsize, fill=255)
    mask = mask.resize(avatar.size, Image.ANTIALIAS)
    avatar.putalpha(mask)

    output = ImageOps.fit(avatar, mask.size, centering=(0.5, 0.5))
    output.putalpha(mask)
    output.save('avatar.png')

    background = Image.open('bg.png')
    background.paste(avatar, (150, 150), avatar)
    background.save('welcome.png')

    await client.send_file(channel, 'welcome.png')

Tags: inimageclienturlsizepngonbot
1条回答
网友
1楼 · 发布于 2024-05-16 14:55:28

您的错误在函数的第一行,当获取通道时,您传递通道id,该通道的id为int/number。你知道现在的错误是什么吗?如果不是,那没关系,它是一个字符串,而不是ID应该是的int。我之所以如此强调这一点,是因为如果您现在就学习它,将来在discord.py中编程将省去很多麻烦,我希望这对您有所帮助,祝您学习discord.py好运

channel = client.get_channel(866789191269220382)

编辑 discord.py有另一种上传文件的方法,这可能是更好的方法

await channel.send(file=discord.File('welcome.png'))

相关问题 更多 >