服务器上搭建Jupyter Notebook服务
2018-12-20 本文已影响54人
爱折腾的大懒猪
- 服务器上安装Jupyter
- 配置具有密码的Jupyter Notebook
服务器上安装Jupyter
安装Jupyter其实很简单, sudo pip install ipython jupyter
就可以了.
但如果, 服务器像是Ubuntu 14.04这种老版本, 默认python版本最新只到2.7.6, 安装jupyter时可能报错因ssl的问题安装不了. 此时要更新Python2. 可以参考网上自行更新python的方法.
更好的解决方案是使用conda安装新版本的python和相关需要的程序, 而不通过pip
进行安装.
- 安装Miniconda2 :
wget https://repo.anaconda.com/miniconda/Miniconda2-latest-Linux-x86_64.sh
chmod +x Miniconda2-latest-Linux-x86_64.sh; ./Miniconda2-latest-Linux-x86_64.sh
- 提示安装目录, 随意, 可以默认. 最后提示是否把conda路径加入到
.bashrc
的PATH
,yes
. conda install ipython jupyter
安装好后, 可以运行jupyter notebook
进行测试(ctrl+c)退出.
- 运行notebook可能报错:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 4: ordinal not in range(128)
查看上面输出时还有一段中文: 这将启动一个基于tornado的HTML笔记本服务器,它提供一个html5/javascript笔记本客户端。 看来是编码的问题.
可以在运行前加入语言更改,LANG=en jupyter notebook
. 如果可以解决, 可以把export LANG=en_US.UTF-8
写到.bashrc
配置Jupyter Notebook密码
- 生成加密的密码:
jupyter notebook password
- 改密码会保存在
~/.jupyter/jupyter_notebook_config.json
内, 是一个sha1
加密的密码. - 生成jupyter配置文件,
jupyter notebook --generate-config
, 会生成一个./.jupyter/jupyter_notebook_config.py
文件. 内有各种参数和默认设置 (默认下全部注释掉). 修改部分重要参数 -
nohup jupyter notebook >.jupyter/jupyter_notebook.log 2>&1 &
背景运行notebook, 也可以写入到启动文件哦. - 可以用
tail -f .jupyter/jupyter_notebook.log
追踪日志(前提有上面一句命令) - 浏览器输入
服务器ip:端口号
, 输入密码, 即可远程登录notebook! - 默认下不允许使用
root
来运行notebook, 安全隐患太大了! 如果硬要用root, 需要参数--allow-root
.
vi ~/.jupyter/jupyter_notebook_config.py
#### 主要修改如下几个配置
## 因为是要远程访问,这里把 IP 设置为服务器 IP或`0.0.0.0` ,默认是127.0.0.1或localhost, 这样无法远程访问的.
c.NotebookApp.ip='0.0.0.0'
## 本地访问目录, 不设置的话就是启动命令所在的目录
c.NotebookApp.notebook_dir = '$HOME/jupyter_data'
## 是否需要自动弹出浏览器,服务器端一般不需要
c.NotebookApp.open_browser = False
## 服务的端口,默认8888, 一般为了安全用别的端口.
c.NotebookApp.port = 9999
密码登录Notebook
- 默认没有登录密码,每次启动服务器后都会产生一个随机数token,可以使用该token进行登录到notebook. 配置了密码后就不用每次使用随机数token了
- 如果没有使用前面的
jupyter notebook password
, 可以自己生成并设置密码.
- 运行
ipython
from notebook.auth import passwd;passwd()
, 按提示输入密码.- 获得一个sha1密码, 如
'sha1:abcdefghijklmn1234567890'
- 更改配置文件里的
c.NotebookApp.password = ''
, 将刚才的sha1密码输入进去.