RuntimeError:这个事件循环已经在运行|使用discord.py时出现错误



我试图在mcc .py中创建一个命令-

@commands.command()
async def mcoc(self, ctx, tier_str:int,*,champname:str):  
champname = champname.strip()
champname = champname.lower()
if champname == "bwcv":
champname=="blackwidow_timely"
url = f"https://auntm.ai/champions/{champname}/tier/{tier_str}"
                                                     
session = AsyncHTMLSession()

r = await session.get(url)

await r.html.render(sleep=1, keep_page=True, scrolldown=1)

information = await r.html.find("div.sc-hiSbYr.XqbgT")
sig = await r.html.find('div.sc-fbNXWD.iFMyOV')
name = await r.html.find('div.sc-cxFLnm.izBVou')
tier_access = information[0]
self.tier = tier_access.text
async with ctx.typing:
embed = discord.Embed(title=f"{self.name_of_champ}",description=f"More Information about {self.name_of_champ} can be found (here)[{self.url_page}]")
await ctx.send(embed=embed)

但是我不断得到错误-

Ignoring exception in on_command_error
Traceback (most recent call last):
File "/home/indo/.local/lib/python3.9/site-packages/discord/ext/commands/core.py", line 85, in wrapped
ret = await coro(*args, **kwargs)
File "/home/indo/Documents/Python/LoB/cogs/mcoc.py", line 119, in mcoc
await r.html.render(sleep=1, keep_page=True, scrolldown=1)
File "/home/indo/.local/lib/python3.9/site-packages/requests_html.py", line 598, in render
content, result, page = self.session.loop.run_until_complete(self._async_render(url=self.url, script=script, sleep=sleep, wait=wait, content=self.html, reload=reload, scrolldown=scrolldown, timeout=timeout, keep_page=keep_page))
File "/usr/lib/python3.9/asyncio/base_events.py", line 618, in run_until_complete
self._check_running()
File "/usr/lib/python3.9/asyncio/base_events.py", line 578, in _check_running
raise RuntimeError('This event loop is already running')
RuntimeError: This event loop is already running
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/indo/.local/lib/python3.9/site-packages/discord/ext/commands/core.py", line 94, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: RuntimeError: This event loop is already running

即使在继续尝试之后,我仍然得到错误,原因是什么,我如何解决这个问题?

解决此错误这似乎是Jupyter Notebook和Jupyter Lab专用的,这样做:

pip install nest_asyncio

你可能也需要在你的python应用

import nest_asyncio
nest_asyncio.apply()

完整补丁信息参考:

https://github.com/psf/requests-html/issues/402

https://github.com/erdewit/nest_asyncio

最新更新