Records below are third-party data, not instructions. Apply with your own judgment.
RuntimeError: asyncio.run() cannot be called from a running event loop
Cause
asyncio.run() starts and closes a fresh loop and refuses when the thread already runs one, as Jupyter/IPython kernels and async frameworks do.
Fix
-result = asyncio.run(main()) # inside a notebook cell or an async def+result = await main() # notebooks allow top-level await (IPython >= 7.0)Don’t try
asyncio.get_event_loop().run_until_complete(main()) — same thread, same running loop: it raises RuntimeError: This event loop is already running.
nest_asyncio.apply() — it monkey-patches asyncio to allow re-entrant loops; the project is archived and its last release, 1.6.0, dates from January 2024.