服务器上搭建Jupyter Notebook服务

  • 服务器上安装Jupyter
  • 配置具有密码的Jupyter Notebook

服务器上安装Jupyter

安装Jupyter其实很简单, sudo pip install ipython jupyter就可以了.
但如果, 服务器像是Ubuntu 14.04这种老版本, 默认python版本最新只到2.7.6, 安装jupyter时可能报错因ssl的问题安装不了. 此时要更新Python2. 可以参考网上自行更新python的方法.
更好的解决方案是使用conda安装新版本的python和相关需要的程序, 而不通过pip进行安装.

  1. 安装Miniconda2 : wget https://repo.anaconda.com/miniconda/Miniconda2-latest-Linux-x86_64.sh
  2. chmod +x Miniconda2-latest-Linux-x86_64.sh; ./Miniconda2-latest-Linux-x86_64.sh
  3. 提示安装目录, 随意, 可以默认. 最后提示是否把conda路径加入到.bashrcPATH, yes.
  4. 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密码

  1. 生成加密的密码: jupyter notebook password
  2. 改密码会保存在~/.jupyter/jupyter_notebook_config.json内, 是一个sha1加密的密码.
  3. 生成jupyter配置文件, jupyter notebook --generate-config, 会生成一个./.jupyter/jupyter_notebook_config.py文件. 内有各种参数和默认设置 (默认下全部注释掉). 修改部分重要参数
  4. nohup jupyter notebook >.jupyter/jupyter_notebook.log 2>&1 & 背景运行notebook, 也可以写入到启动文件哦.
  5. 可以用 tail -f .jupyter/jupyter_notebook.log追踪日志(前提有上面一句命令)
  6. 浏览器输入服务器ip:端口号, 输入密码, 即可远程登录notebook!
  7. 默认下不允许使用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
  • 默认没有登录密码,每次启动服务器后都会产生一个随机数token,可以使用该token进行登录到notebook. 配置了密码后就不用每次使用随机数token了
  • 如果没有使用前面的jupyter notebook password, 可以自己生成并设置密码.
  1. 运行ipython
  2. from notebook.auth import passwd;passwd(), 按提示输入密码.
  3. 获得一个sha1密码, 如'sha1:abcdefghijklmn1234567890'
  4. 更改配置文件里的c.NotebookApp.password = '', 将刚才的sha1密码输入进去.

猜你喜欢

转载自blog.51cto.com/14134461/2333184