为了账号安全,请及时绑定邮箱和手机立即绑定

如何克服“错误:在注册表中找不到对象'jupyter.widget'”?

如何克服“错误:在注册表中找不到对象'jupyter.widget'”?

GCT1015 2022-07-19 17:02:19
我在 kubernetes 上的 jupyterhub 中运行 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-prefixjupyterlab 为 1.0.0,而 jupyterlab-manager 为 1.0。一切就绪后,如何传播更改?注意如果我重新启动 jupyterlab 容器将重新启动并且所有更改都将丢失。我会做任何事情——打印版本、冻结点、运行测试、重新格式化/改写这个问题。有没有人有一个远程线索如何解决这个问题?
查看完整描述

3 回答

?
Helenr

TA贡献1780条经验 获得超3个赞

利用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 窗口中运行的 .ipynb 笔记本中,点击重启内核按钮。


重要提示:不要忘记刷新浏览器页面 - 否则所有努力都将付诸东流。:\


然后执行示例:


from ipywidgets import interact


@interact(x=(0, 100, 10))

def p(x=50):

    pass

我从没想过我会活着看到这一天,但是 - 嘿 presto - 小部件终于出现了!


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

//img1.sycdn.imooc.com//62d673390001b5ee04410213.jpg

查看完整回答
反对 回复 2022-07-19
?
慕斯709654

TA贡献1840条经验 获得超5个赞

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



查看完整回答
反对 回复 2022-07-19
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

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

jupyter labextension install @jupyter-widgets/jupyterlab-manager

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


查看完整回答
反对 回复 2022-07-19
  • 3 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信