No se puede conectar al servidor portátil Jupyter (Error 404) desde el entorno virtual Pyenv

No se puede conectar al servidor portátil Jupyter (Error 404) desde el entorno virtual Pyenv

SO: 5.14.14-arch1-1 GNU/Linux x86_64
Paquetes: jupyter4.6.3, jupyter-notebook6.4.4, pyenv2.2.0]


Mi configuración consiste en iniciar jupyter desde un pyenventorno virtual en un directorio /path/to/my_directorycon todos los paquetes y módulos de Python necesarios preinstalados y crear un kernel de iPython personalizado para ese entorno específico. Hacer que el kernel iPython personalizado esté disponible en la sesión del cuaderno implica:

$ cd /path/to/my_directory
$ pyenv local 3.7.0
$ python -m pip install -r <requirements_file>
$ ipython kernel install --user --name <my_kernel> --display-name "Python3.7.0 (<my_kernel>)"
$ jupyter notebook

... seguido de elegir "Archivo > Nuevo cuaderno" en el menú de la consola de Jupyter y seleccionar "my_kernel" en la nueva ventana del navegador del cuaderno. Este método ha funcionado perfectamente hasta hoy.

Ayer todo funcionó, incluido el lanzamiento del kernel personalizado. Hoy es un día diferente. Los cambios fueron básicamente algunas actualizaciones de paquetes, entre ellas una serie de actualizaciones menores relacionadas con las compilaciones:

[2021-10-27T08:42:39+0200] [ALPM] upgraded npm (8.1.0-1 -> 8.1.1-1)
[2021-10-27T21:42:20+0200] [ALPM] upgraded c-ares (1.18.0-1 -> 1.18.1-1)
[2021-10-27T21:42:20+0200] [ALPM] upgraded cmake (3.21.3-1 -> 3.21.4-1)
[2021-10-27T21:42:20+0200] [ALPM] upgraded jupyter-nbconvert (6.1.0-1 -> 6.1.0-2)
[2021-10-27T21:42:20+0200] [ALPM] upgraded jupyter (4.6.3-2 -> 4.6.3-3)
[2021-10-27T21:42:20+0200] [ALPM] upgraded ldb (2:2.4.0-1 -> 2:2.4.1-1)
[2021-10-27T21:42:20+0200] [ALPM] upgraded librsvg (2:2.52.0-1 -> 2:2.52.3-1)
[2021-10-27T21:42:20+0200] [ALPM] upgraded mercurial (5.9.2-1 -> 5.9.3-1)
[2021-10-27T21:42:21+0200] [ALPM] upgraded portmidi (217-9 -> 236-1)
[2021-10-27T21:42:21+0200] [ALPM] upgraded pyenv (2.1.0-1 -> 2.2.0-1)
[2021-10-27T21:42:21+0200] [ALPM] upgraded python-pygame (2.0.1-2 -> 2.0.1-3)
[2021-10-27T21:42:21+0200] [ALPM] upgraded python-sqlalchemy (1.3.23-1 -> 1.4.25-1)
[2021-10-27T21:42:21+0200] [ALPM] upgraded smbclient (4.15.0-1 -> 4.15.1-1)
[2021-10-27T21:42:21+0200] [ALPM] upgraded samba (4.15.0-1 -> 4.15.1-1)
[2021-10-28T08:18:33+0200] [ALPM] upgraded systemd-libs (249.5-2 -> 249.5-3)
[2021-10-28T08:18:33+0200] [ALPM] upgraded device-mapper (2.03.13-1 -> 2.03.14-1)
[2021-10-28T08:18:33+0200] [ALPM] upgraded cryptsetup (2.4.1-1 -> 2.4.1-3)
[2021-10-28T08:18:33+0200] [ALPM] upgraded lvm2 (2.03.13-1 -> 2.03.14-1)
[2021-10-28T08:18:33+0200] [ALPM] upgraded openexr (3.1.2-1 -> 3.1.3-1)
[2021-10-28T08:18:33+0200] [ALPM] upgraded python-joblib (1.0.1-1 -> 1.1.0-1)
[2021-10-28T08:18:33+0200] [ALPM] upgraded python-ptyprocess (0.7.0-1 -> 0.7.0-2)
[2021-10-28T08:18:33+0200] [ALPM] upgraded python-pexpect (4.8.0-3 -> 4.8.0-4)
[2021-10-28T08:18:33+0200] [ALPM] upgraded systemd (249.5-2 -> 249.5-3)
[2021-10-28T08:18:34+0200] [ALPM] upgraded systemd-sysvcompat (249.5-2 -> 249.5-3)

El error que aparece al intentar iniciar <my_kernel> es:

Error de conexión
No se pudo establecer una conexión con el servidor del portátil. La computadora portátil seguirá intentando volver a conectarse. Verifique su conexión de red o la configuración del servidor de su computadora portátil.

Documento el seguimiento cuando intento iniciar <my_kernel>:

[I 14:54:07.039 NotebookApp] Loading IPython parallel extension
[I 14:54:07.040 NotebookApp] Serving notebooks from local directory: /path/to/my_directory
[I 14:54:07.040 NotebookApp] Jupyter Notebook 6.3.0 is running at:
[I 14:54:07.041 NotebookApp] http://localhost:8888/
[I 14:54:07.041 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
ERROR:asyncio:Exception in callback <TaskWakeupMethWrapper object at 0x7fc064ed4468>(<Future finis...igin\r\n\r\n'>)
handle: <Handle <TaskWakeupMethWrapper object at 0x7fc064ed4468>(<Future finis...igin\r\n\r\n'>)>
Traceback (most recent call last):
   File "/home/USER/.pyenv/versions/3.7.0/lib/python3.7/asyncio/events.py", line 88, in _run
     self._context.run(self._callback, *self._args)
RuntimeError: Cannot enter into task <Task pending coro=<HTTP1ServerConnection._server_request_loop() running at /home/USER/.pyenv/versions/3.7.0/lib/python3.7/site-packages/tornado/http1connection.py:823> wait_for=<Future finished result=b'GET /api/co...rigin\r\n\r\n'> cb=[IOLoop.add_future.<locals>.<lambda>() at /home/USER/.pyenv/versions/3.7.0/lib/python3.7/site-packages/tornad/ioloop.py:688]> while another task <Task pending coro=<MappingKernelManager.start_kernel() running at /home/USER/.pyenv/versions/3.7.0/lib/python3.7/site-packages/notebook/services/kernels/kernelmanager.py:176> cb=[IOLoop.add_future.<locals>.<lambda>() at /home/USER/.pyenv/versions/3.7.0/lib/python3.7/site-packages/tornado/ioloop.py:688]> is being executed.
[I 14:54:09.773 NotebookApp] Kernel started: ad69df20-22a6-40b2-9778-5e1aa8781898, name: <my_kernel>
[I 14:54:12.770 NotebookApp] KernelRestarter: restarting kernel (1/5), new random ports
[I 14:54:15.783 NotebookApp] KernelRestarter: restarting kernel (2/5), new random ports
[I 14:54:18.785 NotebookApp] 302 GET /notebooks/01_cpu-only_inference.ipynb (127.0.0.1) 2.010000ms
[I 14:54:18.795 NotebookApp] KernelRestarter: restarting kernel (3/5), new random ports
[I 14:54:21.803 NotebookApp] KernelRestarter: restarting kernel (4/5), new random ports
[W 14:54:24.814 NotebookApp] KernelRestarter: restart failed
[W 14:54:24.815 NotebookApp] Kernel ad69df20-22a6-40b2-9778-5e1aa8781898 died, removing from map.
[W 14:54:30.901 NotebookApp] Replacing stale connection: ad69df20-22a6-40b2-9778-5e1aa8781898:2eb96ae1751841d7801d200795a4bb30
[W 14:55:09.826 NotebookApp] Timeout waiting for kernel_info reply from ad69df20-22a6-40b2-9778-5e1aa8781898
[E 14:55:09.829 NotebookApp] Error opening stream: HTTP 404: Not Found (Kernel does not exist: ad69df20-22a6-40b2-9778-5e1aa8781898)
[W 14:55:09.832 NotebookApp] 404 GET /api/kernels/ad69df20-22a6-40b2-9778-5e1aa8781898/channels?session_id=2eb96ae1751841d7801d200795a4bb30 (127.0.0.1): Kernel does not exist: ad69df20-22a6-40b2-9778-5e1aa8781898
[W 14:55:09.848 NotebookApp] 404 GET /api/kernels/ad69df20-22a6-40b2-9778-5e1aa8781898/channels?session_id=2eb96ae1751841d7801d200795a4bb30 (127.0.0.1) 38952.030000ms referer=None

EDITAR 1

  • retrocedido pyenvy jupyteruno jupyter-nbconvertpor uno y en ese orden. Por ejemplo:
    $ sudo pacman -U jupyter-nbconvert-6.1.0-1-any.pkg.tar.zst

  • reiniciado cada vez -> sin cambios

  • Se reinstalaron los binarios del entorno virtual Python para 3.7.0.
    $ pyenv uninstall 3.7.0
    $ pyenv install 3.7.0

  • Reinstalados shims de Python 3.7.0
    $ pyenv rehash

  • Me propuse reinstalar mis 3 GB de paquetes requeridos en 3.7.0 virt-env, comenzando con ipykernel. El resultado es Segmentation fault (core dumped).

    $ cd /path/to/my_directory
    $ pyenv local 3.7.0
    $ python -m pip install ipykernel
    Segmentation fault (core dumped)
    $ python -m pip install -U pip
    Segmentation fault (core dumped)
    $ ... etc...
    

Todavía solucionando este problema. Cualquier sugerencia bienvenida.

información relacionada