python - 如何克服“错误:在注册表中找不到对象'jupyter.widget'”?
问题描述
我在 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-prefix
jupyterlab 为 1.0.0,而 jupyterlab-manager 为 1.0。
一切就绪后,如何传播更改?
注意如果我重新启动 jupyterlab 容器将重新启动并且所有更改都将丢失。
我会做任何事情——打印版本、冻结点、运行测试、重新格式化/改写这个问题。
有没有人有一个远程线索如何解决这个问题?
请帮忙!
以下没有帮助:
如何让 ipywidgets 在 Jupyter Lab 中工作?
https://ipywidgets.readthedocs.io/en/latest/user_install.html#installing-the-jupyterlab-extension
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/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 - 小部件终于出现了!
可悲的是,设置对其他扩展的安装非常敏感,并且兼容版本的组合非常具体。
推荐阅读
- r - 如何使用 R 中的 if 语句将唯一函数应用于数据集的多行?
- node.js - 节点js中用户的MSSQL连接登录失败
- android - 如何在长按关闭图标时为已完成图标设置动画?
- python - 在python中匹配最小值等效代码
- c++ - C++“'__gthread_active_p'未在此范围内声明”
- c# - 如何将组合框弹出窗口与左下 wpf 对齐?
- python - 无法使用 BeautifulSoup 正确解析 xml
- common-lisp - 何时消除警告的好例子?
- javascript - Javascript:如何推送密钥:已创建的 Javascript 对象中的对值
- android - YouTube 缩略图不会在 webview 中加载