

相信python开发者都对Jupyter Notebook这种笔记本式的开发环境非常喜欢。这种基于网页的开发环境不仅允许用户创建和共享含有代码的文档,还可以植入公式、可视化图片和描述性的文本等等。前身为IPython Notebook,由于颇受Python开发者的欢迎,Jupyter Notebook目前已经广泛应用于很多其它流行的编程语言,如R、Julia、Perl、Lua和Scala等。

然而,所有的东西都不是十全十美的。我们在享受Jupyter Notebook的同时,总感觉有一种或多或少的缺失感。因为感觉它不太像或压根就不算个IDE(集成开发环境),所以看着用PyCharm、Spyder和Visual Studio For Python的用户,总有一种莫名的羡慕。
为了弥补笔记本式编辑的交互式缺憾,我曾尝试过很多其它的编辑方式。我也曾经一度使用过Python自带的IDLE,但那个用户界面实在令人无法忍受。Anaconda的Spyder和微软的Visual Studio for Python说实话运行起来也没那么稳定。有一次听取好友、Mayo Clinic的薛博士的建议,采用Jupyter Notebook + Qt Console发现顿时好用了很多。但Anaconda 3.0后,每次应用魔法 %qtconsole 启动Qt Console都会有bug,不仅在windows环境下,Mac也一样。因此,一直到今天我仍在应用Anaconda 2.3.0这个版本。
好消息来了,Jupyter Notebook的下一代产品发布了: Jupyter Lab 闪亮登场! Jupyter Lab 在刚刚结束的Scipy 2016大会上发布。虽然目前仅仅是alpha版(内测版),但已经足够吸引大家的眼球,令所有开发者为之振奋。
Jupyter Lab究竟有哪些新的特性让整个Python业界如此兴奋呢?
首先,它是一个名副其实的IDE,且是一个基于网页的IDE(保留了全部的notebook特性)。我个人认为仅仅凭借这一条,Jupyter项目就是一个飞跃。这个集成环境不仅有Console,还有IPython Terminal、所有开发所用到的资源(如图片、代码、文本等)、插件库等。

其次,环境还内置了一个非常得心应手且强大的markdown编辑器。这对于编辑程序文书简直太方便了。我们再也不需要其它的编辑器来撰写readme了。该编辑器与大多数编辑器一样,采取对照方式,一边为markdown编辑页面;另一边为显示页面。
第三,环境可以很多有用的打开方式,打开特定的数据结构和文件格式。比如,对于一个csv文件,我如果想打开这个文件,除了应用numpy/pandas就是用Excel。但 Jupyter Lab 提供了一个表格打开方式,直接在页面里打开这个表型数据,而不是逗号隔开的混乱数据。再比如,对于一个Geo-JSON文件,我们如何直观地实现可视化呢?直接应用Jupyter Lab以地图形式打开,各个位置就直接显示在Google Map中了!Fantastic!

第四, Jupyter Lab 扩展了小插件(widget)功能。这个功能是采纳了其它很多交互性可视化项目的形式(如Bokeh)。比如,可以通过滑块(slider)来可视化改变变量值、图形的大小、图的分布等。Jupyter Lab还有很多非常令人惊奇的功能,在这里我就不赘述了。
最后,如何安装它?对于这个alpha版,同样可以通过Python包索引pip来安装:
pip install jupyterlab
jupyter serverextension enable -sys-prefix jupyterlab
也可以通过conda进行安装:
conda install -c condaforge jupyterlab
启动:
jupyter lab如同启动jupyter notebook一样。

好吧,让我们通过下面的两段在Scipy 2016年大会上,项目负责人Brian Granger和Jason Grout展示的视频,来了解一下 Jupyter Lab 的特性和体验一下其神奇之处吧:
Brian Granger在Scipy 2016会上做的关于Jupyter项目的keynote speak:
需要说明的是,这个发行的 Jupyter Lab 是alpha版,目前不是很稳定。我已尝试了在Windows下通过pip安装,没有成功。我好友Eric Ma在Mac下也没安装成功,但他在linux(Ubuntu)下安装成功。以下是截屏:


希望Jupyter能够成为你的开发利器!

在大周末闷热的天气里,仅用一个小时就写完这个了。赶紧躺着去了!如下图:

关注 Chuan Workstation , 获得更多
临床医学 和 生物信息学 新技术和新进展