试图学习如何用 python 制作一个不和谐的机器人。每次我尝试启动代码时都会出现相同的错误
Posted
技术标签:
【中文标题】试图学习如何用 python 制作一个不和谐的机器人。每次我尝试启动代码时都会出现相同的错误【英文标题】:Trying to learn how to make a discord bot with python. Keep getting same error everytime I try to start the code 【发布时间】:2022-01-16 01:18:54 【问题描述】:好的,请耐心等待。我还在学习,可能会问你一些问题。如标题中所述,我最近阅读了几本关于如何编写 Python 代码的书。做了一个小笨应用,小pygame和文字游戏。所以我想为自己做一些新的、更努力的事情,并努力成长。
我按照 youtube 上的教程进行操作,而这个人在编码时没有出现这个问题。所以这是我的不和谐机器人的代码:
import discord
import os
client = discord.Client()
TOKEN = '##############################'
@client.event
async def on_message(message):
if message.auther == client.user:
return
if message.content.startswith('$hello'):
await message.channel.send('Hello World')
@client.event
async def on_connect():
print("Bot connected to the sever!")
client.run(TOKEN)
现在,当教程中的人运行他的代码时,没有错误。但是当我在我的电脑上运行我的代码时,我得到了以下信息:
Traceback (most recent call last):
File "C:\Users\ccarr\anaconda3\lib\site-packages\discord\client.py", line 713, in run
loop.run_forever()
File "C:\Users\ccarr\anaconda3\lib\asyncio\base_events.py", line 586, in run_forever
self._check_running()
File "C:\Users\ccarr\anaconda3\lib\asyncio\base_events.py", line 578, in _check_running
raise RuntimeError('This event loop is already running')
RuntimeError: This event loop is already running
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\ccarr\anaconda3\lib\site-packages\discord\client.py", line 90, in _cleanup_loop
_cancel_tasks(loop)
File "C:\Users\ccarr\anaconda3\lib\site-packages\discord\client.py", line 75, in _cancel_tasks
loop.run_until_complete(asyncio.gather(*tasks, return_exceptions=True))
File "C:\Users\ccarr\anaconda3\lib\asyncio\base_events.py", line 618, in run_until_complete
self._check_running()
File "C:\Users\ccarr\anaconda3\lib\asyncio\base_events.py", line 578, in _check_running
raise RuntimeError('This event loop is already running')
RuntimeError: This event loop is already running
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\ccarr\OneDrive\Desktop\tenta bot\main.py", line 29, in <module>
client.run(TOKEN)
File "C:\Users\ccarr\anaconda3\lib\site-packages\discord\client.py", line 719, in run
_cleanup_loop(loop)
File "C:\Users\ccarr\anaconda3\lib\site-packages\discord\client.py", line 95, in _cleanup_loop
loop.close()
File "C:\Users\ccarr\anaconda3\lib\asyncio\selector_events.py", line 89, in close
raise RuntimeError("Cannot close a running event loop")
RuntimeError: Cannot close a running event loop
我不知道真正发生了什么错误。我明白它是一个简单的代码,当在聊天中键入正确的命令时,它会在 ta 消息中打招呼。
【问题讨论】:
这能回答你的问题吗? How to Fix Runtime Error: Cannot close a running event loop - Python Discord Bot @Leau 不幸的是,在运行 pip 安装时它不起作用。它会在满足要求时返回。 【参考方案1】:您的问题与异步有关。 看到一个类似的问题Here,尤其是第二个答案
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于试图学习如何用 python 制作一个不和谐的机器人。每次我尝试启动代码时都会出现相同的错误的主要内容,如果未能解决你的问题,请参考以下文章