ipython / ipython/ipykernel

Running notebooks with Python 3.8.3 causes Assertion errors

Ouverte
#519 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Python
Étoiles
734
Forks
412
Merge moyen
1 j 5 h
PR mergées (30 j)
8

Description

Since upgrading to the latest python release 3.8.3 on my system I have had issues running a notebook, specifically: https://github.com/Qiskit/qiskit-tutorials/blob/master/tutorials/circuits_advanced/1_advanced_circuits.ipynb Running that notebook when you run it from scratch on a fresh kernel it hangs on cell 8 and the jupyter notebook output logs multiple assertion errors:

```
[I 07:27:26.810 NotebookApp] Replaying 3 buffered messages
[IPKernelApp] ERROR | Exception in message handler:
Traceback (most recent call last):
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 268, in dispatch_shell
yield gen.maybe_future(handler(stream, idents, msg))
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 735, in run
value = future.result()
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 543, in execute_request
self.do_execute(
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 225, in wrapper
runner = Runner(result, future, yielded)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 712, in __init__
if self.handle_yield(first_yielded):
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 789, in handle_yield
self.io_loop.add_future(self.future, inner)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/ioloop.py", line 693, in add_future
assert is_future(future)
AssertionError
[IPKernelApp] ERROR | Exception in message handler:
Traceback (most recent call last):
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 268, in dispatch_shell
yield gen.maybe_future(handler(stream, idents, msg))
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 735, in run
value = future.result()
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 543, in execute_request
self.do_execute(
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 225, in wrapper
runner = Runner(result, future, yielded)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 712, in __init__
if self.handle_yield(first_yielded):
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 789, in handle_yield
self.io_loop.add_future(self.future, inner)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/ioloop.py", line 693, in add_future
assert is_future(future)
AssertionError
[IPKernelApp] ERROR | Exception in message handler:
Traceback (most recent call last):
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 268, in dispatch_shell
yield gen.maybe_future(handler(stream, idents, msg))
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 735, in run
value = future.result()
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 543, in execute_request
self.do_execute(
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 225, in wrapper
runner = Runner(result, future, yielded)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 712, in __init__
if self.handle_yield(first_yielded):
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 789, in handle_yield
self.io_loop.add_future(self.future, inner)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/ioloop.py", line 693, in add_future
assert is_future(future)
AssertionError
[IPKernelApp] ERROR | Exception in message handler:
Traceback (most recent call last):
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 268, in dispatch_shell
yield gen.maybe_future(handler(stream, idents, msg))
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 735, in run
value = future.result()
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 543, in execute_request
self.do_execute(
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 225, in wrapper
runner = Runner(result, future, yielded)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 712, in __init__
if self.handle_yield(first_yielded):
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 789, in handle_yield
self.io_loop.add_future(self.future, inner)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/ioloop.py", line 693, in add_future
assert is_future(future)
AssertionError
```

Downgrading python to 3.8.2 (or 3.7.x) fixes this. I've also confirmed it on other platforms (I run on linux, but mac users running 3.8.3 have had the same issue). I assume this is probably a bug in python or tornado, but I lack the domain expertise on the stack to be sure.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Reproduce the linked circuits_advanced/1_advanced_circuits.ipynb from a fresh kernel under Python 3.8.3, then inspect the traceback locations in ipykernel/kernelbase.py and tornado/ioloop.py. Compare with Python 3.8.2 or 3.7.x, where the notebook works; done means identifying the compatibility cause and verifying the resulting fix or dependency change.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
jupyter-notebook, python
Domaine
devtools
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.