
1、前言
如果说vim是编辑器之神,那么JupyterLab就是笔记本之神。
从2017年开始我注意到这一神奇的IDE笔记本,第一眼见到它,就觉得它真的太强大了,作为一个交互式的Python开发工具,其实也不算开发工具,准确的来说,它是一个演示代码的科学数据工具,支持markdown预览,支持Draw扩展,支持丰富的文件格式和多种开发语言,拥有众多插件诸于GitHub, Google-Dirve, Git和TOC,更重要的是,它是把浏览器当作开发工具,十分有创意。JupyterLab的开发者众多,GitHub上面的isuue也十分活跃,众多的大牛开发者也纷纷加入到JupyterLab的阵营,为JupyterLab的发展作贡献,JupyterLab得到迅速发展。
好的工具当然是要好好利用了,回归正题,怎样通过云服务器搭建一个可远程使用的JupyterLab?
2、购买云服务器ECS

这里我就直接买了阿里的学生优惠的ECS,9.9元/月,价格算是良心了,这里可以领一下优惠券:阿里云限时礼包。亚马逊还有每个账户免费使用一年云服务器的机会,也可以用一用。购买之后创建实例,启动云服务器,我这里用的是Ubuntu 16.04镜像,记住你设置的root密码。如果没有特殊要求,可以直接使用root用户进行下面操作,不必新建用户。
3、登录ECS并安装必要软件

1 | |
这个ip是公网ip,在你购买的服务器运营商的实例列表里,如果不出意外就可以登录ECS了。
3.1 先做好准备工作
比喻你添加ppa源的时候出现这种情况
1 | |
解决办法
1 | |
3.2 关于pip的问题
安装pip
- 第一步:Install pip and virtualenv for Ubuntu 16.04LTS Maverick and newer
1 | |
- 第二步:Install Easy Install
1 | |
- 第三步:Install pip
1 | |
- 第四步Install virtualenv
1 | |
- For Python3
1 | |
- For Python2
1 | |
升级pip
1 | |
更换pip源加速下载
- 阿里云 http://mirrors.aliyun.com/pypi/simple/
- 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
- 豆瓣(douban) http://pypi.douban.com/simple/
- 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
- 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
1 | |
npm和yarn也可以换源,更简单,自行google。
pip国内的一些镜像包,换源之后出现python2版本过低的情况导致以前的包下载不了,那就直接将文件夹~/.pip/pip.conf删除就可以恢复原来的源。
pip指向问题
有时候会出现pip,pip2,pip3都TM指向python2,这个之后就需要改一下这这三个文件。
编辑这三个文件,将第一行注释分别改为python\python2\python3
1 | |
3.3 安装yarn和nodejs
配置仓库
1 | |
安装yarn
1 | |
注意这里yarn自动安装了nodejs,不过版本太低,安装jupyterlab的时候会出问题,而且使用n或者nvm安装的nodejs也有问题,总之nodejs要按照下面这种方式就没事,这个是官方的bug,官方issue也提到过,但是目前还未解决。
安装nodejs
创建一个新文件,输入两行deb,结束之后Ctrl+C:
1 | |
导入公匙并安装nodejs,这个版本的nodejs对jupyterlab支持比较友好。
1 | |
安装ipython,matplotlib,scipy,pandas,numpy
最好python2和python3都安装。
4、安装JupyterLab及其配置
记住使用pip2安装,如果你用pip3安装的话可能会出现版本兼容问题。
1 | |
生成密码
1 | |
4.1 创建哈希密码
1 | |
4.2 修改JupyterLab配置文件
先生成一个配置文件,记下输出的配置文件地址
1 | |
修改配置文件,找到下面这几行文件,注释掉并修改成这样。
1 | |
对应每行稍微解释一下
1 | |
到此,JupyterLab已经安装成功了。
1 | |
jupyter lab build时间有点久,如果没报错就成功了。但此时你还不能访问JupyterLab,还需要添加端口规则,也就是所谓的添加安全组。
5、添加安全组
去ECS控制台添加安全组,不然你无法通过本地浏览器访问JupyterLab,设置8080端口入方向。


远程访问JupyterLab
运行下面命令。
1 | |
浏览器输入公网ip:8080,就可以访问你的JupyterLab了,第一次访问比较慢,耐心一点,如果最终还是无法访问,那么就是你的安全组配置错啦。
输入密码就可以用了。
6、JupyterLab扩展安装

查看已经安装的扩展及其状态:
1 | |
比喻安装一个扩展jupyterlab_html,支持html预览:
1 | |
卸载扩展:
1 | |
更新所有扩展:
1 | |
下面以安装GitHub扩展为例。
安装GitHub扩展
先去GitHub生成一个token,记下token,待会儿配置要用。

下载安装扩展:
1 | |
配置token
1 | |
需要其他扩展的在GitHub可以自行下载。

7、内核安装与卸载

安装Python内核
1 | |
如果pip指向正常的话就可以看到两个Python内核了。
查看已经安装的内核
1 | |
删除你不需要的内核
1 | |
- 其他内核安装:https://github.com/jupyter/jupyter/wiki/Jupyter-kernels
8、域名和https配置
域名和SSL配置可以参考这两篇文章:
- 阿里云如何配置HTTPS
- nginx服务器配置教程(以ubuntu 16.04为例): https://github.com/lensh/vue-qq/issues/13
其实为觉得没必要,毕竟是个人用的工具,没必要搞个域名,不过强迫症就另说了。具体效果是这样的:

- 我的
nginx配置:nginx.conf
9、结语
JupyterLab的搭建就是这么简单,好的工具就应该好好利用,支持做图,markdown,多标签,内部打开网页,latex,网页预览,这么好的工具我应该早点发现呀。最后,以秀图结束本文,多多指教!
- 画图:

- 多语言支持:

markdown写作体验:

- 内部打开网页:

- 多标签和帮助文档

- 丰富的扩展插件及其管理配置:
