Pyenv 仮想環境から Jupyter ノートブック サーバーに接続できません (エラー 404)

Pyenv 仮想環境から Jupyter ノートブック サーバーに接続できません (エラー 404)

OS: 5.14.14-arch1-1 GNU/Linux x86_64
パッケージ: jupyter4.6.3、6.4.4、2.2.0 jupyter-notebook]pyenv


pyenv私のセットアップは、必要なすべてのパッケージと Python モジュールがプリインストールされたディレクトリ内の仮想環境から jupyter を起動し/path/to/my_directory、その特定の環境用のカスタム iPython カーネルを構築するというものです。ノートブック セッションでカスタム iPython カーネルを使用できるようにするには、次の操作が必要です。

$ 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

... 次に、Jupyter コンソール メニューで「ファイル > 新しいノートブック」を選択し、新しいノートブック ブラウザー ウィンドウで「my_kernel」を選択します。この方法は今日まで問題なく機能しています。

昨日は、カスタム カーネルの起動を含め、すべてがうまくいきました。今日は違います。変更点は基本的にいくつかのパッケージのアップグレードで、その中にはビルドに関するいくつかの小さな更新も含まれています。

[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)

<my_kernel> を起動しようとすると、次のエラーが発生します。

接続に失敗しました。
ノートブック サーバーへの接続を確立できませんでした。ノートブックは再接続を試行し続けます。ネットワーク接続またはノートブック サーバーの構成を確認してください。

<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

編集1

  • pyenvjupyterを1 つずつ、この順序でロールバックしましたjupyter-nbconvert。例:
    $ sudo pacman -U jupyter-nbconvert-6.1.0-1-any.pkg.tar.zst

  • 毎回再起動 -> 変化なし

  • 3.7.0 の Python 仮想環境バイナリを再インストールしました
    $ pyenv uninstall 3.7.0
    $ pyenv install 3.7.0

  • Python 3.7.0 shimsを再インストールしました
    $ pyenv rehash

  • 3.7.0 virt-env で 3GB の必須パッケージを再インストールすることにしましたipykernel。結果は です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...
    

まだトラブルシューティング中です。ご提案があれば歓迎します。

関連情報