如何让ipywidgets在Jupyter Lab工作?

use*_*601 37 python ipython jupyter ipywidgets jupyter-lab

在Jupyter Notebook中,ipywidgets运行良好,但它们似乎在Jupyter Lab中不起作用(据说它比Notebook更好).

我遵循了这些指示.

第1步:安装Node.js(https://nodejs.org/en/)

第2步:使用conda在Python 3上安装了需求:

conda install -c conda-forge ipywidgets
jupyter labextension install @jupyter-widgets/jupyterlab-manager
Run Code Online (Sandbox Code Playgroud)

不幸的是,基本的小部件在jupyter实验室笔记本中不起作用:

在此输入图像描述

scn*_*erd 49

JupyterLab现在更喜欢这样一个模型,在这个模型中,不再允许任意javascript嵌入到单元格的输出中,这是多少交互式Jupyter Notebook模块的工作.他们现在要求具有交互性的模块创建JupyterLab扩展.IPyWidgets有一个扩展,可以通过在命令行上运行它来激活它(假设你已经安装了NodeJS):

jupyter labextension install @jupyter-widgets/jupyterlab-manager
Run Code Online (Sandbox Code Playgroud)


4gi*_*ivN 10

我有相同的pbm,并尝试了此解决方案(希望它可以帮助其他人):

jupyter labextension install @jupyter-widgets/jupyterlab-manager放弃这种在我的情况的错误:

> /Users/user/.nvm/versions/node/v8.7.0/bin/npm pack @jupyter-widgets/jupyterlab-manager
jupyter-widgets-jupyterlab-manager-0.35.0.tgz

Errored, use --debug for full output:
ValueError:
"@jupyter-widgets/jupyterlab-manager@0.35.0" is not compatible with the current JupyterLab
Conflicting Dependencies:
JupyterLab              Extension            Package
>=0.15.4-0 <0.16.0-0    >=0.16.0-0 <0.17.0-0 @jupyterlab/application
>=1.1.4-0 <2.0.0-0      >=2.0.0-0 <3.0.0-0   @jupyterlab/services
>=0.15.4-0 <0.16.0-0    >=0.16.0-0 <0.17.0-0 @jupyterlab/rendermime
>=0.15.4-0 <0.16.0-0    >=0.16.0-0 <0.17.0-0 @jupyterlab/notebook
Run Code Online (Sandbox Code Playgroud)

然后,我所做的是使用以前的版本0.34而不是0.35: jupyter labextension install @jupyter-widgets/jupyterlab-manager@0.34

事实上,根据这个,有时团队有时间来考虑的最后一个版本。

UP(根据评论):您可以检查jupyter lab --version并找到其版本兼容性的匹配项

现在就可以了!

在此处输入图片说明

  • 可以检查“ jupyter lab --version”版本,并在此[版本兼容性](https://npm.taobao.org/package/@jupyter-widgets/jupyterlab-manager)上找到匹配项。 (4认同)

小智 8

注:以上大部分答案已过时(截至 2021 年 7 月 19 日)。与这些软件包的最新版本相比,它应该更加无缝。然而,在 2021 年,我在 jupyterhub 上托管的 jupyterlab 中渲染小部件时遇到了问题panel,并看到了这篇文章。我一开始尝试了其中的一些答案,但没有一个起作用。在深入研究了一些库后,我发现了以下内容:

\n
    \n
  1. jupyter labextension install @jupyter-widgets/jupyterlab-manageripywidgets==7.6自和 起不再需要jupyterlab>=3.0来源。如果您使用的是最新版本的 jupyterlab,则只需安装即可ipywidgets,只要小部件扩展作者也遵循一些步骤,该扩展就会自动启用。\n
    \n

    此版本的主要变化是安装 ipywidgets 7.6.0 现在将自动在 JupyterLab 3.0\xe2\x80\x94a 中启用 ipywidgets 支持,用户无需额外的 JupyterLab 安装步骤,无需重建 JupyterLab,也不需要安装 Node.js。只需使用 pip (pip install ipywidgets==7.6.0) 或 conda/mamba (conda install -c conda-forge ipywidgets=7.6.0) 安装 python ipywidgets 包,ipywidgets 将自动在经典 Jupyter Notebook 和 JupyterLab 3.0 中工作。

    \n
    \n
  2. \n
  3. panel也效仿并将必要的扩展捆绑在pyviz_comms包中,所以理论上所有内容都应该包含在我的案例中。来源\n
    \n

    在经典的 Jupyter Notebook 环境和 JupyterLab 中,首先确保加载 pn.extension()。如果面板对象是笔记本单元中的最后一个项目,那么它们将自行渲染。对于 jupyterlab>=3.0 的版本,必要的扩展会自动捆绑在 pyviz_comms 包中,该包必须 >=2.0。

    \n
    \n
  4. \n
\n

我的问题的答案原来是我在通过 jupyterhub 构建 jupyterlab 服务器panel 后进行安装。(例如,对于特定笔记本,用户正在运行!pip install panel)。这是我有点模糊的地方,因为我不确定为什么这不起作用,因为它ipywidgets已经安装并且panel安装包含预构建的 jupyterlab 扩展。但是,我能够通过使用从 jupyterhub 生成的 jupyterlab 图像来解决我的问题,该图像已ipywidgets>=7.6预先安装panel>=0.11.3(因此)。pyviz_comms>=2.0之后,jupyterhub 上的 jupyterlab 中的面板小部件现在可以工作了。希望这对遇到类似问题的人有所帮助。

\n


roc*_*ady 6

遇到了同样的问题,今天对我有用的是运行“ clean”命令,如下所述:https : //ipywidgets.readthedocs.io/en/latest/user_install.html#installing-the-jupyterlab-extension

所以:

jupyter lab clean
jupyter labextension install @jupyter-widgets/jupyterlab-manager
Run Code Online (Sandbox Code Playgroud)

这使它现在对我来说正好起作用。