ipython / ipython/ipykernel

ipykernel disallows jupyter user to create/attach to event loop

Abierto
#548 8 comentarios 9 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Python
Estrellas
734
Forks
412
Merge medio
1 d 5 h
PR fusionados (30 d)
8

Descripción

Hello,

as follow-up on https://github.com/jupyter/notebook/issues/3397#issuecomment-419474214, here a minimal example that I expect to finish successfully when sent to the kernel by jupyter:

```py
import asyncio
print(asyncio.get_event_loop().run_until_complete(asyncio.sleep(0)))
```

It runs fine in latest IPython which doesn't use tornado under the hood.

However, `notebook>=5.7.9` requires `tornado>=5` and so when ipykernel executes `loop = tornado.ioloop.IOLoop.current()`, an asyncio event loop will be created and `run_forever` by ipykernel.

This consequently leaves the user without options (left aside `nest-asyncio` which works for most cases), as there is a running asyncio loop on startup.

If IPython can run this simple snippet, shouldn't jupyter be able to do the same? Currently, any package that does a plain loop setup and teardown will crash in jupyter envs that have `tornado>=5`.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.