只有想不到,「99」种扩展Jupyter功能的好方法(2)
如果使用一个可插拔的生成器,你可以用很多方法给每个用户提供 Jupyter 笔记本服务器。你可能让他们从一个节点生成 Docker 容器、将它们连接到 Kubernetes 上、让它们使用你的 HPC 集群、或者使用你的 Hadoop 或者 Spark 集群、用 systemd 提供服务、或者直接将这些服务器视为不同的 Linux 用户。这些生成器一般都很容易定制参数,当然你也可以自己写一个。 (3) 服务 你有时希望给 JupyterHub 用户提供额外服务——在闲置时回收资源,或者让他们发布笔记本。你可以运行一个 JupyterHub Service 来提供这些服务。用户可以发起请求,而服务也可以向 JupyterHub 发起 API 请求。这些可以是直接的请求,或者网络服务。例如,BinderHub (https://github.com/jupyterhub/binderhub) 是 JupyterHub 服务中的一种。 NBConvert Exporter Nbconvert 扩展可以令笔记本格式的文件和其他格式相互转换。如果你导出笔记本到 PDF、LaTeX、HTML 或者 nbviwer 的话,你已经使用了这个扩展。在这个扩展里,对应每一个格式都有一个导出器,你也可以写一个针对自己格式的导出器,或者可以利用已有的定制一个。 在写这篇博客时,我最开心的时刻是发现有 docx 文档(word)导出器。 word 导出器:https://github.com/m-rossi/jupyter-docx-bundler Bundler 扩展 很容易就能找到 nbconvert 导出器的方法 Bundler 扩展使你可以在菜单栏添加「下载为」按钮。这个按钮和 nbconvert 导出器联用,使得导出器更容易被找到,尽管你可以写一个定制化的扩展,使笔记本在下载前进行任何操作。例如,nbreport 扩展提供一个 bundler 扩展,可以将笔记本格式导出为 HTML。 Repo2Docker Repo2Docker 扩展将 git 或者其他仓库转换为可重新使用、适合于数据科学的 docker 镜像。网站 mybinder.org(和其他 binderhub 安装包)使用这个扩展构建和运行 Jupyter/RStudio 进程。如下所示,现在有两种扩展 repo2docker 的方式。 (1) BuildPacks Repo2docker 会查看代码库中的内容,并决定如何去构建它。例如,如果里面有 requirements.txt 文件,它会设置一个小型 conda 环境,并把 Python 包安装进去。如果里面有 install.R 文件,扩展则会保证 R/RStudio 已经安装。写一个 BuildPack (https://repo2docker.readthedocs.io/en/latest/architecture.html#buildpacks) 使你可以将这个功能扩展到你喜欢的编程语言中。 (2) ContentProviders Repo2docker 中的 repo 部分有点用词不当——实际上你可以将任何程序打包进一个 Docker 镜像中。现在,它支持 git 本地文件夹和 zenodo (https://zenodo.org/) 代码仓库,但是你可以为自己喜欢的代码源添加支持,并制作一个新的 ContentProvider。 只有这些了吗? 当然不是!Jupyter 生态是一个很大的系统,一篇博客无法完全覆盖所有内容。这个博客已经少了一些,如 enterprise gateway 和 TLJH Plugins。Jupyter 的生态是活跃多变的,很快还有更多好用的扩展出现。 原文链接:https://blog.jupyter.org/99-ways-to-extend-the-jupyter-ecosystem-11e5dab7c54 【本文是51CTO专栏机构“机器之心”的原创译文,微信公众号“机器之心( id: almosthuman2014)”】 戳这里,看该作者更多好文
(编辑:ASP站长网) |