我是编程新手。我试图让我的Discord机器人打开命令提示符以确认它可以运行,但是出现此错误:
File "C:\Users\---\AppData\Local\Programs\Python\Python38-32\lib\asyncio\proactor_events.py", line 116, in __del__
self.close()
File "C:\Users\---\AppData\Local\Programs\Python\Python38-32\lib\asyncio\proactor_events.py", line 108, in close
self._loop.call_soon(self._call_connection_lost, None)
File "C:\Users\---\AppData\Local\Programs\Python\Python38-32\lib\asyncio\base_events.py", line 719, in call_soon
self._check_closed()
File "C:\Users\---\AppData\Local\Programs\Python\Python38-32\lib\asyncio\base_events.py", line 508, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
[Finished in 0.871s]
代码:
import discord
from discord.ext import commands
client=commands.Bot(command_prefix = '.')
@client.event
async def on_ready():
print('ok')
client.run(token)
什么原因导致此错误,我该如何解决?
编辑:经过一些测试,我相信“ client.run(token)”是导致“事件循环关闭”的原因,不确定原因。
答案 0 :(得分:1)
我猜你的机器人没有 function
,所以它只是启动然后又关闭,但我不确定。您必须通过例如添加 async def on_message(message)
来测试这一点。
通常,Event loop is closed
“错误”是由 client.close()
或 client.logout()
答案 1 :(得分:1)
这是因为您没有设置“token”变量,在您的最后一行中您使用了它但未定义。
或者也许你设置了但没有写在这里?
答案 2 :(得分:0)
您需要进入Discord Bot的开发面板,单击Bot选项卡,然后在其中找到一个令牌,上面写着Reveal Token,您只需单击COPY。
然后,您需要在代码上像这样建立该令牌。
import discord
from discord.ext import commands
TOKEN = "here paste your token"
client=commands.Bot(command_prefix = '.')
@client.event
async def on_ready():
print('Connected')
client.run(TOKEN)
这将解决您的问题,喜欢编码!
答案 3 :(得分:0)
当我遇到同样的问题时,尝试在它对我有用的开发者门户上启用意图
答案 4 :(得分:-2)
我需要完整的代码。如我所见,由于asyncio而不是discord.py
当然,有可能是使用asyncio的discord.py。
但是我要重复,我需要完整的代码,否则-我不知道
抱歉,如果没有帮助