无法在 docker 图像中安装任何 jupyterlab 扩展

Can't install any jupyterlab extensions in docker image

我 运行 docker 在本地主机上运行的管道代理上的 Azure 管道中构建任务。我正在尝试“运行 jupyter labextension install @jupyter-widgets/jupyterlab-manager”。

在基本图像中: node=14.14.0 jupyter=1.0.0 jupyter-packaging = 0.7.12 jupyter-resource-usage= 0.5.1 jupyter_client = 6.1.7 jupyter_console = 6.2.0 jupyter_core = 4.7.0 jupyter_server = 1.6.1 jupyter_telemetry = 0.1.0 jupyterhub = 1.3.0 jupyterhub-base = 1.3.0 jupyterlab = 3.0.12 jupyterlab-git = 0.30.0b2 jupyterlab-templates = 0.2.5 jupyterlab_code_formatter=1.4.5 jupyterlab_pygments = 0.1.2 jupyterlab_server = 2.3.0

Dockerfile 看起来像这样:

USER root
COPY files/.npmrc $HOME/.npmrc
RUN jupyter labextension install --no-build @jupyter-widgets/jupyterlab-manager .....

.npmrc 看起来像这样:

always-auth=true
strict-ssl=false
registry=https://pkgs.dev.azure.com/org-name/proj-name/_packaging/proj-name/npm/registry/
https-proxy=the-proxy-url
proxy=the-proxy-url

管道执行以下任务:

  1. 在 .npmrc 上运行 npmAuthenticate 任务以使用授权令牌编辑 .npmrc 文件。这样就成功了..
  2. 接下来运行 docker 构建。 Dockerfile 指示将此修改后的 .npmrc 复制到 $HOME 并尝试安装实验室扩展

找到这个线程:https://github.com/jupyter-widgets/ipywidgets/issues/1982#issuecomment-468716770 我们使用 jupyterlab v3。所以 node>=12 是必需的。所以我将 Dockerfile 更改为:

USER root
COPY files/.npmrc $HOME/.npmrc
RUN conda remove nodejs && conda install -c conda-forge nodejs=12 && conda list | grep nodejs &&\
jupyter labextension install --no-build @jupyter-widgets/jupyterlab-manager .....

也试过这个:。没有帮助

正常的“npm install @angular/cli”有效。但是实验室扩展让我很难过。此时似乎没有任何效果..

这是错误:

ValueError: "@jupyter-widgets/jupyterlab-manager" is not a valid npm package

请帮忙!

您不应为 JupyterLab 3.0+ 安装 Node.js 或 @jupyter-widgets/jupyterlab-manager。扩展系统已得到改进,新的“联合扩展”系统不再需要 Node.js(并且大多数扩展已从 Node.js 要求迁移)。 @jupyter-widgets/jupyterlab-manager 的自述文件明确指出,对于 JupyterLab 3.0+,您应该使用:

pip install jupyterlab_widgets

大多数扩展也是如此——如果他们迁移了,他们将在自述文件中有一个 PyPI 包的名称。更深入的解释请阅读.

作为一个好建议,请仅将 jupyter labextension install 用于尚未迁移到 pip/conda-installable 联合扩展的扩展。

已将 npmrc 复制到 /.npmrc 而不是 $HOME/.npmrc。这有效