每当我运行下面的代码,尝试了许多解决方案,但都没有成功时,我总是会遇到这样的错误“RuntimeError:无法关闭正在运行的事件循环”。
我正在使用jupyter笔记本,print(discord.\uuuuu版本)
--
提前谢谢。
import nest_asyncio
nest_asyncio.apply()
import discord
import os
from dotenv import load_dotenv
# https://stackoverflow.com/questions/63530888/how-would-i-go-about-creating-an-env-file-for-my-discord-bot-token
client = discord.Client()
@client.event
async def on_ready():
print('Logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
if message.author == message.user:
return
if message.content.startswith('$hello'):
await message.channel.send('Hello!')
TOKEN = os.getenv("token")
client.run('TOKEN')
代码输出:
以后从未检索到任务异常:
上述异常是以下异常的直接原因:
RuntimeError Traceback (most recent call last)
<ipython-input-10-ccfa19a2810e> in <module>
26 TOKEN = os.getenv("token")
27
---> 28 client.run('TOKEN')
29
30
~\anaconda3\lib\site-packages\discord\client.py in run(self, *args, **kwargs)
717 future.remove_done_callback(stop_loop_on_completion)
718 log.info('Cleaning up tasks.')
--> 719 _cleanup_loop(loop)
720
721 if not future.cancelled():
~\anaconda3\lib\site-packages\discord\client.py in _cleanup_loop(loop)
93 finally:
94 log.info('Closing the event loop.')
---> 95 loop.close()
96
97 class _ClientEventTask(asyncio.Task):
~\anaconda3\lib\asyncio\selector_events.py in close(self)
87 def close(self):
88 if self.is_running():
---> 89 raise RuntimeError("Cannot close a running event loop")
90 if self.is_closed():
91 return
RuntimeError: Cannot close a running event loop
将最后一行从client.run('TOKEN')
改为client.run(TOKEN)
。您正在使用字符串"TOKEN"
而不是变量TOKEN
。
问题内容: 我正在尝试解决此错误:在我的异步过程中。我相信这是因为在任务仍未完成时发生故障,然后尝试关闭事件循环。我以为我需要在关闭事件循环之前等待其余的响应,但是我不确定如何在我的特定情况下正确完成该操作。 我该如何处理错误并正确关闭事件循环,以便可以启动一个新程序并从本质上重新启动整个程序并继续。 编辑: 根据这个答案,这就是我现在正在尝试的方法。不幸的是,这种错误很少发生,因此,除非我可以强
我试图在Spyder中创建代码以启动discord bot,但遇到以下错误: 回溯(最近一次呼叫最后一次): 文件“”,第1行,在runfile中('C:/Users/Nathan/Desktop/HW/Python stuff/my_discord\u bot.py',wdir='C:/Users/Nathan/Desktop/HW/Python stuff') 文件“C:\ProgramDat
问题内容: 我有以下5个文件: gui.py functions.py 线程处理程序 variables.py 和start.py 执行start.py之后,我收到消息:“ QCoreApplication:exec:事件循环已在运行 ” 我发现,这与计时器有关 从 start.py 和功能 在 functions.py中 有人可以向我解释问题是什么吗?我不知道代码有什么问题… 问题答案: 我认为
我有一个程序,当你点击按钮,它将执行一个名为
我正在quarkus中实现一个gprc服务器()。我的服务是以反应式风格编写的(smallrye mutiny)。这是我的服务类 现在,写入中的实际逻辑是位阻塞,导致vertx阻塞事件循环警告(以及一些其他错误)。如quarkus grpc服务器指南中所述(https://quarkus.io/guides/grpc-getting-started)我用对该方法进行了注释。 在添加此注释之前,我在
我知道这在StackOverflow上被问过很多次,但我尝试过很多不同的解决方案,没有一个奏效。所以我决定问问社区该怎么做。下面是我的代码中的相关片段。 请注意,这只是我的代码中从控制台输入的部分,不包含任何其他内容。我有其他东西设置,要求代码是这种格式。 将Input.HasNext()替换为Input.HasNextLine() 将input.hasnext()替换为input.next()!