首页 > 解决方案 > RuntimeError:连接python discord bot时事件循环关闭

问题描述

我刚开始用 python 编写一个不和谐的机器人,虽然代码很简单,但我在尝试连接时总是收到 RuntimeError

我多次检查令牌

如果有人能告诉我我做错了什么,我将不胜感激

蟒蛇脚本:

import discord
from discord.ext import commands

bot = commands.Bot(command_prefix=':')


@bot.event
async def on_ready():
    print('bot is ready')


bot.run('my_token')

这是回溯:

Traceback (most recent call last):
  File "C:\Users\orang\Projects\PythonProjects\discord_lyrics_bot\venv\lib\site-packages\discord\http.py", line 293, in static_login
    data = await self.request(Route('GET', '/users/@me'))
  File "C:\Users\orang\Projects\PythonProjects\discord_lyrics_bot\venv\lib\site-packages\discord\http.py", line 247, in request
    raise HTTPException(r, data)
discord.errors.HTTPException: 401 Unauthorized (error code: 0): 401: Unauthorized

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File ".\main.py", line 12, in <module>
    bot.run('Bxb-8dRGeYHYLFD5-IXGhNfY1TnX3kKA')
  File "C:\Users\orang\Projects\PythonProjects\discord_lyrics_bot\venv\lib\site-packages\discord\client.py", line 718, in run
    return future.result()
  File "C:\Users\orang\Projects\PythonProjects\discord_lyrics_bot\venv\lib\site-packages\discord\client.py", line 697, in runner
    await self.start(*args, **kwargs)
  File "C:\Users\orang\Projects\PythonProjects\discord_lyrics_bot\venv\lib\site-packages\discord\client.py", line 660, in start
    await self.login(*args, bot=bot)
  File "C:\Users\orang\Projects\PythonProjects\discord_lyrics_bot\venv\lib\site-packages\discord\client.py", line 509, in login
    await self.http.static_login(token.strip(), bot=bot)
  File "C:\Users\orang\Projects\PythonProjects\discord_lyrics_bot\venv\lib\site-packages\discord\http.py", line 297, 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 0x00000217D658C670>
Traceback (most recent call last):
  File "C:\Users\orang\AppData\Local\Programs\Python\Python38\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Users\orang\AppData\Local\Programs\Python\Python38\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Users\orang\AppData\Local\Programs\Python\Python38\lib\asyncio\base_events.py", line 719, in call_soon
    self._check_closed()
  File "C:\Users\orang\AppData\Local\Programs\Python\Python38\lib\asyncio\base_events.py", line 508, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed

标签: pythondiscordbotsdiscord.py

解决方案


您使用了错误的不和谐令牌。首先,你泄露了你的机器人令牌

bot.run('Bxb-8dRGeYHYLFD5-IXGhNfY1TnX3kKA')

尽快再生你的脚趾。其次,确保您在 Bot Tab 中获取了令牌,并且您没有获得任何其他令牌。我可以说令牌太短并且是错误的令牌。


推荐阅读