Asyncio Event Loop está 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.

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 "", line 1, in  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.