Мой код:
import asyncio
async def coro(arg):
return arg
async def main():
loop = asyncio.new_event_loop()
# asyncio.set_event_loop(loop) - пробовал, не помогает
task = asyncio.ensure_future(coro(1), loop=loop)
res = await asyncio.gather(*asyncio.all_tasks(loop=loop))
if __name__ == '__main__':
event_loop = asyncio.get_event_loop()
event_loop.run_until_complete(main())
Ошибка:
Traceback (most recent call last):
File "/Users/lifr0m/Documents/Proxies/test.py", line 18, in <module>
event_loop.run_until_complete(main())
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
return future.result()
File "/Users/lifr0m/Documents/Proxies/test.py", line 13, in main
res = await asyncio.gather(*asyncio.all_tasks(loop=loop))
RuntimeError: Task <Task pending name='Task-1' coro=<main() running at /Users/lifr0m/Documents/Proxies/test.py:13> cb=[_run_until_complete_cb() at /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/base_events.py:184]> got Future <_GatheringFuture pending> attached to a different loop
Собственно, что я делаю не так? Я разве не могу запустить таск от одного лупа и в нём создать второй луп? Я в аргументах указал второй луп.