Как я могу преодолеть «Ошибка: объект« jupyter.widget »не найден в реестре»? - PullRequest
0 голосов
/ 04 февраля 2020

Я запускаю jupyterlab в jupyterhub на kubernetes.

Я пытаюсь отобразить виджеты, используя, например,

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- менеджер находится на уровне 1.0.

Как только все будет в порядке, как мне распространять изменения?

NB. Если я перезапущу jupyterlab, контейнер перезапустится, и все изменения будут потеряны.

I будет делать что угодно - печатать версии, заморозить пипс, запускать тесты, переформатировать / перефразировать этот вопрос.

У кого-нибудь есть дистанционный ключ, как решить эту проблему?

Пожалуйста, помогите!

Следующее не помогло:

Как заставить ipywidgets работать в Jupyter Lab?

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

Проблема с отображением виджетов / ipywidgets: установка не удалась * 1 040 *

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

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Использование 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.

Затем в записной книжке .ipynb, запущенной в том же окне jupyterlab, нажмите кнопку перезагрузки ядра.

ВАЖНО: Не забудьте также REFRE SH страница браузера - или все усилия будут напрасны. : \

Затем выполните пример:

from ipywidgets import interact

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

Я никогда не думал, что доживу до дня, но - эй presto - виджет наконец-то появляется!

Печально Дело в том, что установка чрезвычайно чувствительна к установке других расширений, а комбинация совместимых версий очень специфична c.

enter image description here

0 голосов
/ 04 февраля 2020

Поскольку вы попробовали несколько потенциальных решений, но безуспешно, возможно, было бы целесообразно изучить возможность того, как проблема связана с тем, как JupyterLab и kubernetes взаимодействуют друг с другом на серверной части. Если это проблема, вам может понадобиться добавить оператор install в базовый файл контейнера и перестроить его, чтобы правильное расширение установилось во время сборки. Вы работаете с докер-файлом? Есть ли у вас необходимые привилегии для редактирования развернутого программного контейнера? Если нет на любой из этих вопросов, есть ли системный администратор, с которым вы можете связаться?

...