How can I overcome "Error: Object 'jupyter.widget' not found in registry"?

How can I overcome "Error: Object 'jupyter.widget' not found in registry"?

我在 kubernetes 上的 jupyterhub 中 运行ning jupyterlab。

我正在尝试使用例如

显示小部件
from ipywidgets import interact

@interact(x=(0, 100, 10))
def p(x=50):
    pass

实验室笔记本打印的不是预期的交互式小部件:

interactive(children=(IntSlider(value=50, description='x', step=10), Output()), _dom_classes=('widget-interact...

检查 javascript 控制台时:

default.js:129 Error: Object 'jupyter.widget' not found in registry
    at default.js:1474
    at new Promise (<anonymous>)
    at Object.loadObject (default.js:1453)
    at DefaultKernel.<anonymous> (default.js:919)
    at Generator.next (<anonymous>)
    at default.js:9
    at new Promise (<anonymous>)
    at push.YC29.__awaiter (default.js:5)
    at DefaultKernel._handleCommOpen (default.js:911)
    at DefaultKernel.<anonymous> (default.js:1018)

我尝试了很多不同的组合:

!pip install ipywidgets
!pip install widgetsnbextension --upgrade
!pip install widgetslabextension --upgrade
!conda install -n base -y --override-channels -c main -c conda-forge widgetsnbextension ipywidgets nodejs
!jupyter nbextension enable --py widgetsnbextension
!jupyter labextension enable widgetsnbextension
!jupyter labextension list
!jupyter labextension install @jupyter-widgets/jupyterlab-manager
!jupyter lab clean
!jupyter lab build
!pip install --upgrade Nodejs
!npm install -g npm yarn
!jupyter serverextension enable --py jupyterlab --sys-prefix

jupyterlab 为 1.0.0,jupyterlab-manager 为 1.0。

一切就绪后,我该如何传播更改?

注意如果我重新启动 jupyterlab,容器将重新启动并且所有更改都将丢失。

我会做任何事情 - 打印版本、pip 冻结、运行 测试、reformat/reword 这个问题。

有没有人知道如何解决这个问题?

请帮忙!

以下没有帮助:

https://ipywidgets.readthedocs.io/en/latest/user_install.html#installing-the-jupyterlab-extension

Problem displaying widgets / ipywidgets install unsuccessful

https://github.com/jupyter-widgets/ipywidgets/issues/2220

https://github.com/jupyter-widgets/ipywidgets/issues/2514

https://github.com/jupyter-widgets/ipywidgets/issues/2483

https://github.com/twosigma/beakerx/issues/7520

https://github.com/jupyterlab/jupyterlab/issues/6998

https://jupyterhub.readthedocs.io/en/stable/troubleshooting.html

https://github.com/jupyter-widgets/ipywidgets/issues/1949

https://github.com/jupyter-widgets/ipywidgets/pull/1962

由于您已经尝试了几种可能的解决方案但都没有成功,也许明智的做法是探索问题是否与 JupyterLab 和 kubernetes 在后端如何相互交互有关。如果这是问题所在,您可能需要将安装语句添加到底层容器文件并重建它,以便在构建时安装正确的扩展。你在使用 dockerfile 吗?您是否拥有必要的权限来编辑正在部署的底层软件容器?如果对其中任何一个都没有,是否有可以联系的系统管理员?

利用 https://github.com/jupyter-widgets/ipywidgets/issues/2488#issuecomment-509719214,在 jupyterlab 终端中 - 运行 在 jupyterhub 上 - 执行:

pythonversion=3.7
labversion=0.34.12
labmanagerversion=0.37.4
ipywidgetsversion=7.4.2

conda install ipywidgets=$ipywidgetsversion -c conda-forge -y --override-channels -c main
conda install jupyterlab=$labversion  -y -c conda-forge --override-channels -c main
jupyter-labextension install @jupyter-widgets/jupyterlab-manager@$labmanagerversion

此时 jupyter lab clean; jupyter lab build 可能会感兴趣。

然后在同一个 jupyterlab window 的 .ipynb notebook 运行 中,点击重启内核按钮。

重要提示:别忘了REFRESH浏览器页面 - 否则所有努力都将白费。 :\

然后执行例子:

from ipywidgets import interact

@interact(x=(0, 100, 10))
def p(x=50):
    pass

我从没想过我能活到这一天,但是 - 嘿,转眼间 - 小部件终于出现了!

可悲的是,设置对其他扩展的安装极其敏感,兼容版本的组合非常具体。

我不在 k8s 上,但如果其他人在这里寻找同样的错误,我的解决方法是 运行:

jupyter labextension install @jupyter-widgets/jupyterlab-manager

重启内核,重新加载页面等