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
文件,显示效果如下:
代码,表格,图片都可以直接显示。
github.com
上也找了一个介绍 scikit-learn 的 ipynb
文件。
地址:scikit-learn 介绍
左上角选择preview
就能看到渲染之后的效果。
2. nbviewer官网
jupyter
系列项目中有一个 nbviewer
项目,专门用来分享 ipynb
文件的。
nbviewer
项目的官网上可以根据你的 ipynb
文件的url
地址,生成可以分享的 notebook
。
官网地址:nbviewer.org/
上面红色框内可以是git
仓库中文件的地址,比如上面的 scikit-learn 介绍 文件。
或者是ipynb
文件的下载路径,比如我的一个示例文件:databook.top:8888/pandas-tric…
点击 Go!
按钮后,显示效果如下:
生成之后,可以直接把浏览器上的URL
分享给别人。
3. 自己部署nbviewer
nbviewer
的官网在国外,访问起来比较慢。
若自己有服务器的话,部署一个自己的 nbviewer
也很简单。
服务器上用docker
来部署 nbviewer
的服务。
docker pull jupyter/nbviewer
docker run -p 8080:8080 jupyter/nbviewer
这样服务就启动在了8080
端口。
使用方式和 nbviewer
官网一样,只是生成的分享路径中是你自己的服务器域名或者IP。
4. 总结
对于我来说,分享Jupyter Notebook
的分析结果挺常用的,这样可以给客户展示直观的结果,节省了很多沟通的成本。
上面介绍的几种方式,第一种git仓库的分享比较适合同事之间分享,
如果分享给客户,特别是平时不写代码的客户,一来他们不一定知道git
什么,二来也没有git
账号。
可能根本不知道怎么访问你的公共仓库。
所以,通过第二种方式,把 nbviewer
官网生成的链接分享给他们比较合适。
不过nbviewer
官网在国内访问很慢,对于国内的客户,用第三种方式,自己部署一个 nbviewer
服务也是个不错的选择。
第三种方式有个服务器的成本,分享频率比较高的情况下建议用第三种方式。
我自己常用的就是第三种方式。