分享jupyter notebook的方法

791 阅读3分钟

Jupyter Notebook可以将文档,代码和运行结果放在同一个文件之中,
如果用python写代码的的话,就是 后缀名为 ipynb 的文件。

这样,我们互相分享分析成果的时候就简单多了,一个 ipynb 文件就包含了分析过程的说明,代码以及代码的运行结果。
但是 ipynb的原始内容是json格式的,并不利于直接阅读,
需要在jupyter渲染之后,才能像报告一样被阅读。

所以,分享Jupyter Notebook时,如果直接把 ipynb文件发给对方,而对方没有jupyter环境的话,分享就没有意义了。

本篇介绍几种分享 Jupyter Notebook的方法,即使对方没有jupyter环境,也可以阅读其中的内容。

1. 公共git仓库

目前流行的git仓库都支持直接展示 ipynb 文件。
比如国内的 gitee.com 以及大名鼎鼎的 github.com

git仓库创建时分为公共项目和私有项目,如果要分享给所有人,就创建公共项目。
私有项目一般只有项目组成员才能访问。

创建仓库之后,将自己的ipynb 文件上传到仓库后,通过浏览器浏览仓库并打开相应文件即可。

比如我在gitee.com上的一个 ipynb 文件,显示效果如下:
image.png
代码,表格,图片都可以直接显示。

github.com上也找了一个介绍 scikit-learn 的 ipynb 文件。
地址:scikit-learn 介绍
image.png
左上角选择preview就能看到渲染之后的效果。

2. nbviewer官网

jupyter 系列项目中有一个 nbviewer 项目,专门用来分享 ipynb 文件的。

nbviewer 项目的官网上可以根据你的 ipynb文件的url地址,生成可以分享的 notebook
官网地址:nbviewer.org/
image.png
上面红色框内可以是git仓库中文件的地址,比如上面的 scikit-learn 介绍 文件。
或者是ipynb文件的下载路径,比如我的一个示例文件:databook.top:8888/pandas-tric…
image.png

点击 Go!按钮后,显示效果如下:
image.png
生成之后,可以直接把浏览器上的URL分享给别人。

3. 自己部署nbviewer

nbviewer的官网在国外,访问起来比较慢。
若自己有服务器的话,部署一个自己的 nbviewer 也很简单。

服务器上用docker来部署 nbviewer 的服务。

docker pull jupyter/nbviewer
docker run -p 8080:8080 jupyter/nbviewer

这样服务就启动在了8080端口。
image.png
使用方式和 nbviewer 官网一样,只是生成的分享路径中是你自己的服务器域名或者IP

4. 总结

对于我来说,分享Jupyter Notebook的分析结果挺常用的,这样可以给客户展示直观的结果,节省了很多沟通的成本。

上面介绍的几种方式,第一种git仓库的分享比较适合同事之间分享,
如果分享给客户,特别是平时不写代码的客户,一来他们不一定知道git什么,二来也没有git账号。
可能根本不知道怎么访问你的公共仓库。

所以,通过第二种方式,把 nbviewer 官网生成的链接分享给他们比较合适。

不过nbviewer 官网在国内访问很慢,对于国内的客户,用第三种方式,自己部署一个 nbviewer 服务也是个不错的选择。
第三种方式有个服务器的成本,分享频率比较高的情况下建议用第三种方式。

我自己常用的就是第三种方式。