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.