使用Jupyterhub时是否加载了Jupyter serverextension
Is Jupyter serverextension loaded when using Jupyterhub
我写了一个 Jupyter servertextension。当我使用 jupyter serverextension enable --py my_module
配置它并使用 jupyter notebook
启动 Jupyter Notebook 时,扩展运行良好。但是当我以相同的方式配置它然后使用 jupyterhub
启动 Jupyter 时,将不会加载 serverextension。请问有懂jupyterhub配置的吗?
如果您使用 DockerSpawner,这意味着您的 Jupyterhub
服务器会为每个用户创建一个新容器,并在该容器中从头开始安装笔记本。这就是为什么您的扩展没有 运行 - 您的常规 notebook
服务器安装了扩展,但是 Docker 容器中的 notebook
服务器还没有安装您的扩展,因为您正在使用默认 jupyterhub/singleuser
图片。
您将必须创建一个自定义 Docker 图像,您 JupyterHub
服务器将使用该图像来创建您的 notebook
服务器。这是一个简单的示例 Docker 文件,向您展示基础知识:
FROM jupyterhub/singleuser
USER root
COPY /path/to/YourExtension-1.0.tar.gz /home/jovyan/work
RUN pip install YourExtension-1.0.tar.gz
RUN jupyter serverextension enable --py your_extension --sys-prefix
RUN rm YourExtension-1.0.tar.gz
显然用相关名称替换对 "your extension" 的引用。我们在这里所做的就是从 jupyterhub/singleuser
图像继承并复制并安装扩展。然后,在你的 JupyterHub
配置中,在你的 jupyterhub_config.py
文件中指定你的 Docker 图像(在 运行ning docker build
构建你的 docker 图像之后)像这样:
c.DockerSpawner.image = 'yourrespository/yourimage'
我写了一个 Jupyter servertextension。当我使用 jupyter serverextension enable --py my_module
配置它并使用 jupyter notebook
启动 Jupyter Notebook 时,扩展运行良好。但是当我以相同的方式配置它然后使用 jupyterhub
启动 Jupyter 时,将不会加载 serverextension。请问有懂jupyterhub配置的吗?
如果您使用 DockerSpawner,这意味着您的 Jupyterhub
服务器会为每个用户创建一个新容器,并在该容器中从头开始安装笔记本。这就是为什么您的扩展没有 运行 - 您的常规 notebook
服务器安装了扩展,但是 Docker 容器中的 notebook
服务器还没有安装您的扩展,因为您正在使用默认 jupyterhub/singleuser
图片。
您将必须创建一个自定义 Docker 图像,您 JupyterHub
服务器将使用该图像来创建您的 notebook
服务器。这是一个简单的示例 Docker 文件,向您展示基础知识:
FROM jupyterhub/singleuser
USER root
COPY /path/to/YourExtension-1.0.tar.gz /home/jovyan/work
RUN pip install YourExtension-1.0.tar.gz
RUN jupyter serverextension enable --py your_extension --sys-prefix
RUN rm YourExtension-1.0.tar.gz
显然用相关名称替换对 "your extension" 的引用。我们在这里所做的就是从 jupyterhub/singleuser
图像继承并复制并安装扩展。然后,在你的 JupyterHub
配置中,在你的 jupyterhub_config.py
文件中指定你的 Docker 图像(在 运行ning docker build
构建你的 docker 图像之后)像这样:
c.DockerSpawner.image = 'yourrespository/yourimage'