Jupyter 实验室“404:未找到您请求的页面不存在!”

Jupyter Lab "404 : Not Found You are requesting a page that does not exist!"

在我更新包和设置环境之前,Jupyter Notebook 和 Jupyter Lab 运行良好。 之后,JupyterLab 3.0 不会打开。它显示 404 和一条错误消息:

[I 18:21:13.532 LabApp] JupyterLab extension loaded from 
C:\Users\Alfonso\AppData\Roaming\Python\Python38\site-packages\jupyterlab
[I 18:21:13.532 LabApp] JupyterLab application directory is C:\Users\Alfonso\AppData\Roaming\Python\share\jupyter\lab
[W 18:21:13.533 LabApp] Error loading server extension jupyterlab
    Traceback (most recent call last):
    File "C:\ProgramData\Anaconda3\lib\site-packages\notebook\notebookapp.py", line 2036, in init_server_extensions
        func(self)
    File "C:\Users\Alfonso\AppData\Roaming\Python\Python38\site-packages\jupyterlab\extension.py", line 226, in load_jupyter_server_extension
        add_handlers(web_app, config)
    File "C:\ProgramData\Anaconda3\lib\site-packages\jupyterlab_server\handlers.py", line 162, in add_handlers
        handlers.append((url_pattern, LabHandler))
    AttributeError: 'NotebookWebApplication' object has no attribute 'append'
[I 18:23:27.282 LabApp] Serving notebooks from local directory: C:\Users\Alfonso
[I 18:23:27.282 LabApp] Jupyter Notebook 6.3.0 is running at:
[I 18:23:27.282 LabApp] localhost:8889/…
[I 18:23:27.283 LabApp] or 127.0.0.1:8889/…
[I 18:23:27.283 LabApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 18:23:27.370 LabApp] To access the notebook, open this file in a browser: file:///C:/Users/Alfonso/AppData/Roaming/jupyter/runtime/nbserver-5876-open.html

我更换了浏览器(Firefox 而不是 Chrome),遵循了另一个 post (How to solve 404 error of jupyter lab) 中的建议,但都没有用。此外,我已尝试通过以管理员和用户身份安装来解决问题。

我想知道是否有不涉及重新安装所有 Anaconda 发行版的解决方案。

已安装的版本:

其他人在安装冲突的 jupyterlab_serverjupyterlab 版本时遇到了类似的问题(请参阅 issue 146 in jupyterlab_server repository),但是您的版本没问题。仔细一看,问题出在安装位置

回溯包括到两个位置的路径:

  • C:\Users\<username>\AppData\Roaming\Python\Python38\site-packages
  • C:\ProgramData\Anaconda3\lib\site-packages

这表明您可能在不同的地方安装了这些软件包的多个版本(通过 pip 在本地 Python 目录中安装了较新的版本,而在 Anaconda3 目录中安装了较旧的版本通过 conda)。因为您系统上的 conda 具有更高的优先级,所以当 JupyterLab(安装在本地)尝试导入其依赖项时,它会从 conda 目录中获取旧版本的 notebookjupyterlab_server,这无法执行它想要的操作。

解决方案:

  1. pip uninstall jupyterlab
  2. conda install -c conda-forge jupyterlab

上下文:JupyterLab 3.0 中的基础架构发生了很大的变化,这意味着它现在使用 jupyter_serverjupyterlab_server 而不是 notebook 进行所有后端工作(与内核交互,文件系统,打开端口等)。