试图学习如何用 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 制作一个不和谐的机器人。每次我尝试启动代码时都会出现相同的错误的主要内容,如果未能解决你的问题,请参考以下文章

试图为不和谐制作一个聊天机器人,但它不起作用

试图制作一个命令页面来列出我的不和谐机器人上的所有命令,但不知道如何[关闭]

试图用嵌入制作一个不和谐的日志记录机器人

在heroku上构建错误;试图制作一个不和谐的机器人

python问题中的不和谐机器人

如何为不和谐的机器人制作一个可变的嵌入列表?