`jupyter notebook` gives error: `"Could not open static file ''"` on macOS

`jupyter notebook` gives error: `"Could not open static file ''"` on macOS

我没有更改我的系统配置,但我今天第一次发现这个错误。

我已经在这里报告了:https://github.com/jupyter/notebook/issues/4871

> jupyter notebook
[I 10:44:20.102 NotebookApp] JupyterLab extension loaded from /usr/local/anaconda3/lib/python3.7/site-packages/jupyterlab
[I 10:44:20.102 NotebookApp] JupyterLab application directory is /usr/local/anaconda3/share/jupyter/lab
[I 10:44:20.104 NotebookApp] Serving notebooks from local directory: /Users/pi
[I 10:44:20.104 NotebookApp] The Jupyter Notebook is running at:
[I 10:44:20.104 NotebookApp] http://localhost:8888/?token=586797fb9049c0faea24f2583c4de32c08d45c89051fb07d
[I 10:44:20.104 NotebookApp]  or http://127.0.0.1:8888/?token=586797fb9049c0faea24f2583c4de32c08d45c89051fb07d
[I 10:44:20.104 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 10:44:20.110 NotebookApp]

    To access the notebook, open this file in a browser:
        file:///Users/pi/Library/Jupyter/runtime/nbserver-65385-open.html
    Or copy and paste one of these URLs:
        http://localhost:8888/?token=586797fb9049c0faea24f2583c4de32c08d45c89051fb07d
     or http://127.0.0.1:8888/?token=586797fb9049c0faea24f2583c4de32c08d45c89051fb07d
[E 10:44:21.457 NotebookApp] Could not open static file ''
[W 10:44:21.512 NotebookApp] 404 GET /static/components/react/react-dom.production.min.js (::1) 9.02ms referer=http://localhost:8888/tree?token=BLA
[W 10:44:21.548 NotebookApp] 404 GET /static/components/react/react-dom.production.min.js (::1) 0.99ms referer=http://localhost:8888/tree?token=BLA
Set

看起来这个问题已在 Jupyter 6.0.1

中修复

所以问题变成了:我可以强制安装 jupyter 6.0.1 吗?

由于最初的问题现在引发了第二个问题,我现在在这里提出这个新问题:

或者我可以手动提供丢失的文件,但我不确定在哪里。我在这里问过:Where does Jupyter install site-packages on macOS?

研究:

https://github.com/jupyter/notebook/pull/4772 "add missing react-dom js to package data #4772" 2019 年 8 月 6 日

minrk added this to the 6.0.1 milestone on 18 Jul

好的,我可以得到 Jupyter Notebook 6.0.1 吗?

brew cask install anaconda 下载 ~/Library/Caches/Homebrew/downloads/{LONG HEX}--Anaconda3-2019.07-MacOSX-x86_64,即 7 月,conda --version 报告 conda 4.7.10。但这是针对 Anaconda 的,即包 Manager

> conda list | grep jupy
jupyter                   1.0.0                    py37_7
jupyter_client            5.3.1                      py_0
jupyter_console           6.0.0                    py37_0
jupyter_core              4.5.0                      py_0
jupyterlab                1.0.2            py37hf63ae98_0
jupyterlab_server         1.0.0                      py_0

这有点令人困惑。这里没有jupyter notebook

> which jupyter
/usr/local/anaconda3/bin/jupyter

> jupyter --version
jupyter core     : 4.5.0
jupyter-notebook : 6.0.0
qtconsole        : 4.5.1
ipython          : 7.6.1
ipykernel        : 5.1.1
jupyter client   : 5.3.1
jupyter lab      : 1.0.2
nbconvert        : 5.5.0
ipywidgets       : 7.5.0
nbformat         : 4.4.0
traitlets        : 4.3.2

好的,看来 jupyter-notebook 在由 Anaconda 维护的 jupyter 中。

我们可以更新这个吗?

https://jupyter.readthedocs.io/en/latest/projects/upgrade-notebook.html

> conda update jupyter
 :

jupyter --version还是6.0.0

根据 Where does Jupyter install site-packages on macOS?,我在我的系统 jupyter 中找到了正在搜索此丢失文件的位置:

> find / -path '*/static/components'  2>/dev/null
/usr/local/anaconda3/pkgs/notebook-6.0.0-py37_0/lib/python3.7/site-packages/notebook/static/components
/usr/local/anaconda3/lib/python3.7/site-packages/notebook/static/components

并且根据 https://github.com/jupyter/notebook/pull/4772#issuecomment-515794823,如果我下载该文件并将其存放在第二个位置,即创建:

/usr/local/anaconda3/lib/python3.7/site-packages/notebook/static/components/react/react-dom.production.min.js

...现在 jupyter notebook 正常启动。

(注意:谨慎起见我也复制到了第一个位置,不过好像没什么效果)

我通过更新 pip 和 pip3 上的 jupyter 解决了这个问题(为了安全起见),这解决了问题

同时使用

pip install --upgrade jupyter

pip3 install --upgrade jupyter --no-cache-dir

我相信您可以在终端和 conda 的终端中执行此操作(因为 conda envs 也有 pip)