0%

JupyterLab NoteBook 安装

1. 安装python3虚拟环境

此步骤根据需求而定,为了不影响系统Python环境,这里建立了虚拟环境。

1
2
3
cd ~
python3 -m venv .p3env
source ~/.p3env/bin/activate

2 修改pip源

为了能加速下载Python依赖,这里修改了pip源,这步也可根据自己的需求来。
可参考清华大学的pip源设置:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

临时设置

1
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

全局设置

1
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

可以在 ~/.config/pip/pip.conf 中找到pip全局配置

1
2
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

不过在安装时,发现jupyter-lab下载还是很慢,因为jupyter-lab使用的时Piwheels源。
我们可以在配置里再加上aliyun的源。当然按理也可以直接设置aliyun的源为全局主源。或者继续添加其他的 extra-index-url 都行。这里主要演示怎么修改pip源的方法。

1
2
3
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
extra-index-url=https://mirrors.aliyun.com/pypi/simple

3 安装jupyter-lab

安装jupyter-lab的方法有好几种,这里使用pip: https://jupyter.org/install

1
pip install jupyterlab

4 运行jupyter-lab

1
2
cd workspace
jupyter-lab

在工作目录中执行,在桌面环境下,会直接打开浏览器: http://localhost:8888/lab
在非桌面环境:

1
2
3
4
5
6
7
8
9
10
11
12
[I 2021-03-07 23:58:57.962 ServerApp] jupyterlab | extension was successfully linked.
[I 2021-03-07 23:58:58.943 ServerApp] nbclassic | extension was successfully linked.
[I 2021-03-07 23:58:59.044 LabApp] JupyterLab extension loaded from /home/pi/.p3env/lib/python3.7/site-packages/jupyterlab
[I 2021-03-07 23:58:59.045 LabApp] JupyterLab application directory is /home/pi/.p3env/share/jupyter/lab
[I 2021-03-07 23:58:59.054 ServerApp] jupyterlab | extension was successfully loaded.
[I 2021-03-07 23:58:59.074 ServerApp] nbclassic | extension was successfully loaded.
[I 2021-03-07 23:58:59.075 ServerApp] 启动notebooks 在本地路径: /home/user/.config/pip
[I 2021-03-07 23:58:59.075 ServerApp] Jupyter Server 1.4.1 is running at:
[I 2021-03-07 23:58:59.075 ServerApp] http://localhost:8888/lab
[I 2021-03-07 23:58:59.076 ServerApp] or http://127.0.0.1:8888/lab
[I 2021-03-07 23:58:59.076 ServerApp] 使用control-c停止此服务器并关闭所有内核(两次跳过确认).
[W 2021-03-07 23:58:59.089 ServerApp] 没有找到web浏览器: could not locate runnable browser.

即使在局域网打开 http://192.168.2.3:8888/ 也没用。
在非桌面环境下,可使用以下命令:

1
jupyter-lab --no-browser --ip=0.0.0.0 

--ip=x.x.x.x 表示运行访问的主机IP地址, 0.0.0.0  表示所有主机都可访问。
这个时候打开http://192.168.2.3:8888/ 便可进入。

5 配置外网环境

在申请到公网IP,或者是运行在诸如VPS的云主机上时,需要对jupyter-lab进行配置。
由于公网访问,为了安全,我们对jupyter-lab设置密码。

生成jupyter-lab配置文件

1
jupyter-lab --generate -config

修改配置文件

1
2
cd ~/.jupyter
vim jupyter_lab_config.py

可以修改以下配置:

1
2
3
c.ServerApp.password='xxxx'
c.ServerApp.password_required = True
c.ServerApp.port = 8888

具体的修改项可以根据自己的需求来
其中鉴权方式分为2中,一种是密码,一种是服务器token,服务器token会由服务器随机生成,不建议采用这种方式。服务器token可以在 ~/.jupyter/jupyter_server_config.json 文件末尾找到。
修改配置也可以通过命令行来进行,比较推荐这种方式。

修改密码

1
jupyter-lab password

修改工作目录

1
jupyter-lab --app-dir=<Unicode>

指端IP和端口号

1
jupyter-lab --no-browser --ip=0.0.0.0 --port=5002

具体由哪些方法见

1
jupyter-lab --help 

为了提高安全性,可使用ssl设置https,具体修改的参数见 jupyter-lab --help  或者 jupyter_lab_config.py 文件。下面我使用的是nginx来方向代理。

6 Nginx配置

Nginx的使用可见文档:https://www.cwiki.cn/archives/nginx%E4%BD%BF%E7%94%A8

Nginx 配置文件

这里设置的端口是8080,可以按自己的需求,比如443,设置ssl证书。由于jupyter-lab会使用到websocket,需要进行设置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
server {
listen 8080 ssl;
listen [::]:8080 ssl;

ssl_certificate /path/xx.crt;
ssl_certificate_key /path/xx.key;

server_name xxx.yy.zz;

location / {
proxy_pass http://127.0.0.1:8888;
proxy_set_header Host $host;
proxy_set_header X-Real-Scheme $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

proxy_read_timeout 120s;
proxy_next_upstream error;
}
}

后台启动jupyter-lab

1
2
3
source ~/.p3env/bin/activate
nohup jupyter-lab --no-browser --ip=0.0.0.0 > /path/x.log 2>&1 & # log
nohup jupyter-lab --no-browser --ip=0.0.0.0 > /dev/null 2>&1 & # 无log

关于后台运行可参考其他文章

启动Nginx

1
2
3
4
# 已经运行了nginx
sudo service nginx reload
# 没运行
sudo service nginx start

这时在外网打开 https://xxxx:8080/lab,输入密码就可以进入

DONE