tutorial run loop gather event español await asyncio async python python-asyncio

python - run - Asyncio Event Loop está cerrado



python event loop (1)

Ya has llamado loop.close() antes de ejecutar ese fragmento de código de muestra, en el bucle de eventos globales:

>>> import asyncio >>> asyncio.get_event_loop().close() >>> asyncio.get_event_loop().is_closed() True >>> asyncio.get_event_loop().run_until_complete(asyncio.sleep(1)) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/.../lib/python3.6/asyncio/base_events.py", line 443, in run_until_complete self._check_closed() File "/.../lib/python3.6/asyncio/base_events.py", line 357, in _check_closed raise RuntimeError(''Event loop is closed'') RuntimeError: Event loop is closed

Necesitas crear un nuevo bucle:

loop = asyncio.new_event_loop()

Puede configurarlo como el nuevo bucle global con:

asyncio.set_event_loop(asyncio.new_event_loop())

y luego simplemente use asyncio.get_event_loop() otra vez.

Alternativamente, simplemente reinicie su intérprete de Python, la primera vez que intente obtener el bucle de eventos globales obtendrá uno nuevo, no cerrado.

Al intentar ejecutar el código de asyncio hello world dado en la documentación:

import asyncio async def hello_world(): print("Hello World!") loop = asyncio.get_event_loop() # Blocking call which returns when the hello_world() coroutine is done loop.run_until_complete(hello_world()) loop.close()

Me sale el error:

RuntimeError: Event loop is closed

Estoy usando python 3.5.3.