【问题标题】:How can I fix a RuntimeError in Python for a discord bot?如何在 Python 中为不和谐的机器人修复 RuntimeError?
【发布时间】:2021-03-29 07:50:43
【问题描述】:

我一直在尝试根据我正在观看的教程系列为自己构建一个不和谐机器人。当我尝试运行下面的代码时,出现运行时错误。我在最后一行留下了你需要与机器人连接的令牌,因为我显然不希望任何人能够连接到他。

Traceback (most recent call last):
  File "c:\Users\Frederik\Desktop\Python\main.py", line 11, in <module>
    client.run("y9QHVpnw5u8aJWYZHMAatZ-nCSrM17YF")
  File "C:\Users\Frederik\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\client.py", line 708, in run
    return future.result()
  File "C:\Users\Frederik\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\client.py", line 687, in runner
    await self.start(*args, **kwargs)
  File "C:\Users\Frederik\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\client.py", line 650, in start
    await self.login(*args, bot=bot)
  File "C:\Users\Frederik\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\client.py", line 499, in login
    await self.http.static_login(token.strip(), bot=bot)
  File "C:\Users\Frederik\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\http.py", line 295, in static_login
    raise LoginFailure('Improper token has been passed.') from exc
discord.errors.LoginFailure: Improper token has been passed.
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x00000249A4C08E50>
Traceback (most recent call last):
  File "C:\Users\Frederik\AppData\Local\Programs\Python\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Users\Frederik\AppData\Local\Programs\Python\Python39\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Users\Frederik\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py", line 746, in call_soon
    self._check_closed()
  File "C:\Users\Frederik\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
PS C:\Users\Frederik\Desktop\Python>
import discord

class MyClient(discord.Client):
    async def on_ready(self):
        print("Eingeloggt!")

    async def on_message(self, message):
        print("Nachricht von" + str(message.author) + "enthält" + str(message.content))

client = MyClient()
client.run("")

【问题讨论】:

    标签: python python-3.x discord


    【解决方案1】:

    确保您复制的是机器人的令牌,而不是客户端密码。转到开发者门户 (discord.com/developers),单击您的应用程序,单击 Bot 选项卡,复制令牌并将其传递给 client.run。

    【讨论】:

    • 谢谢你,伙计 :) 我不敢相信我是那个智障并复制了错误的令牌!
    【解决方案2】:

    我认为是安装错误:

     File "c:\Users\Frederik\Desktop\Python\main.py", line 11, in <module>
        client.run("y9QHVpnw5u8aJWYZHMAatZ-nCSrM17YF")
    

    你让你的令牌^^

    尝试重新安装库 discord.py 并更改令牌:D

    【讨论】:

      【解决方案3】:

      使用 Discord API 需要身份验证令牌才能连接到服务(就像机器人登录网站一样)。您可以在生成令牌期间自定义您的机器人的隐私。

      我建议您按照以下说明创建令牌:

      https://discordpy.readthedocs.io/en/latest/discord.html#discord-intro

      如果这仍然不起作用,请根据文档中的快速入门仔细检查您的机器人:

      https://discordpy.readthedocs.io/en/latest/quickstart.html

      我还建议您在此处阅读有关 Discord API 的 Python 包装器的文档:

      https://discordpy.readthedocs.io/en/latest/

      祝你好运!!!

      【讨论】:

        猜你喜欢
        • 2021-06-02
        • 2019-10-17
        • 1970-01-01
        • 2021-10-30
        • 2021-05-27
        • 2021-07-15
        • 2021-02-28
        • 2020-09-23
        • 2021-08-18
        相关资源
        最近更新 更多