Centos 7 安装 Jupyter Notebook
本文安装 Jupyter Notebook 是我在 Centos 7 服务器上安装的一次记录过程。此方式可以作为本地环境使用,也可以作为服务器环境部署。当然对于本次
Jupyter Notebook 的部署方式,也是我现在常用的项目部署方式----通过 supervisor 部署,而结合 virtualenvwrapper 能够更方便的控制虚拟环境。
下面开始吧
基础系统环境需要安装 Python36 virtualenv virtualenvwrapper supervisor 。如果你的环境还没准备好,可以参照此文根据自己环境
调整相关操作。如果你的环境已经配置完成可以按照此文愉快的安装。如果你想安装前面提到的环境可以参考下面几篇文章。
环境准备
创建 jupyter 虚拟环境
1 | mkvirtualenv jupyter |
安装
1 | pip install ipython jupyter |
配置
生成 jupyter 配置文件
一般会直接生成在家目录 ~/.jupyter/jupyter_notebook_config.py
1 | jupyter notebook --generate-config |
生成必要配置参数
为了服务器数据安全,我们采用设置密码和设置 https 保证安全登录。当然我们的 https 证书是自己颁发的。
生成加密密码
进入 ipython ,生成 sha1 密码。
1 | from notebook.auth import passwd |
输入两次密码。密码是不回显的!
生成自签名证书
1 | openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout ~/.jupyter/jkey.key -out ~/.jupyter/jcert.pem |
会提示输入一些内容,如果你不知道该填什么的话,那就回车默认好了~
修改配置文件
修改文件 /.jupyter/jupyter_notebook_config.py
1 | c.NotebookApp.password = 'sha1:5c82f59da5a3:a68e8360e2cab6336fbbfa3d141f9a617aec7dba' |
注意:
password
要填你上面密码生成的 hash 值notebook_dir
置了jupyter的notebook路径,即访问jupyter首页时,看到的文件列表就是该目录下的。记得授权给启动用户,要不然可能会出现无法访问- 最后两条配置的文件路径记得要写对应文件的绝对路径!
启动
增加防火墙端口:
如果你使用了 firewalld 记得开发端口
1 | firewall-cmd --add-port=8888/tcp --permanent |
测试启动
执行命令启动。
1 | jupyter notebook |
然后浏览器访问页面
supervisord 启动
编辑文件 /etc/supervisord.d/jupyter_notebook.ini
填入如下配置
1 | [program:jupyter_notebook] |
注意:
command
为你虚拟环境中的启动命令user
用哪个用户启动。如果公网能访问不建议使用 root 用户stdout_logfile
日志存放目录。记得把权限给启动用户。因为会生成备份日志。建议单独放一个文件夹,然后授权给此用户。免得日志写满了没有权限备份日志和建立新文件。这里配置不好的话 supervisor 页面的tail -f
可能看不到实时打出的日志。
执行 supervisorctl
进入 supervisor 交互,重新加载 supervisor 配置文件。
1 | > upload |
查看状态
1 | status |
当然这两个操作都可以在 web 页面上进行。
如果有出错请查看相关日志
TODO:
- 使用 nginx 代理
- jupyterhub 多用户管理