ipython / ipython/ipykernel

ipykernel disallows jupyter user to create/attach to event loop

Offen
#548 8 Kommentare 9 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Python
Sterne
734
Forks
412
Ø Merge
1 T. 5 Std.
Gemergte PRs (30 T.)
8

Beschreibung

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`.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.