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
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 --app-dir=<Unicode>
|
指端IP和端口号
1
| jupyter-lab --no-browser --ip=0.0.0.0 --port=5002
|
具体由哪些方法见
为了提高安全性,可使用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;
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