简体   繁体   中英

RuntimeError: This event loop is already running | Error while using discord.py

I am trying to make a command in mcoc.py cog -

    @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)

But continuesly I am getting the error-

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

Even after continues attempts, I am still getting the error, What's the reason and how can I fix this?

To resolve the error <RuntimeError: This event loop is already running> , which seems to be specific for Jupyter Notebook and Jupyter Lab, do this:

pip install nest_asyncio

you may also need this in your python app

import nest_asyncio
nest_asyncio.apply()

For complete patch info refence:

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

https://github.com/erdewit/nest_asyncio

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM