jupyter 介绍
Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。
Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等
jupyter 安装和使用
安装
$ pip install jupyter
配置jupyter
# 生成配置文件, 此条命令会在 /home/{user}/.jupyter目录下创建 jupyter_notebook_config.py, 用戶可以自定义配置
$ jupyter notebook --generate-config
需要注意的配置有如下几个:
# The IP address the notebook server will listen on
c.NotebookApp.ip = '0.0.0.0'
# The port the notebook server will listen on.
c.NotebookApp.port = 8080
# the workdir
c.ContentsManager.root_dir = '/root'
# 进入jupyter dashboard,列出"/root" 目录下的所有文件
c.FileContentsManager.root_dir = '/root'
# the dirtory of the notebook. 此项是打开一个notebook的当前路径,最好设置下,不然会发现里面的路径之中是启动Jupyter 的路径,而无法切换;
c.NotebookApp.notebook_dir= '/root'
# Use '*' to allow any origin to access your server.
c.NotebookApp.allow_origin = '*'
# Allow requests where the Host header doesn’t point to a local server, 允许远端访问,如果不配置会报403错误
c.NotebookApp.allow_remote_access = False
# 此项可以和上一项配合使用,上一项如果为false, 则如果需要允许某些IP 的访问,可以添加到此配置中
c.NotebookApp.local_hostnames = ['127.0.0.1', ... 'xxx']
注意:
- 如若
c.FileContentsManager.root_dir
和c.NotebookApp.notebook_dir
设置不同,则第一个路径是登录jupyter后所有文件的父目录,第二个路径是默认新开一个notebook的当前路径 - 如若
c.ContentsManager.root_dir
和c.NotebookApp.notebook_dir
设置不同,则第一个路径暂时没看到生效,第二个路径是登录jupyter后所有文件的父目录和默认新开一个notebook的当前路径。效果和只设置c.NotebookApp.notebook_dir
选项没有区别。 - 新增terminal 页面的默认路径始终是启动jupyter的路径,暂时没找到可以复写的选项。
启动
$ jupyter notebook
jupyter 访问
jupyter 使用websocket 协议,故而如需配置nginx 如下项:
location /jupyter/ {
proxy_pass http://$jupyter_host:$jupyter_port;
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 配置文件在 /home/{user}/.jupyter/jupyter_notebook_config.py, 此项必须配置,因为nginx 只是入口配置,后续请求是jupyter 主动请求,nginx的location和jupyter 的base_url 配置必须一样,则后续访问会报404错误,配置如下:
c.NotebookApp.base_url = '/jupyter/'