ubuntu 16.04安装jupyter notebook使用与进阶

一、Jupyter Notebook简介

Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。
Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等;
是一款非常好用的基于web方式使用python的工具;
支持windows 与linux系统,本次以ubuntu 16.04 python3.5.2为例,安装演示;
相关配置及更高级的玩法请参考官方文档

二、安装

1、pip安装

sudo python3 -m pip install --upgrade pip
sudo python3 -m pip install jupyter

2、简单使用
默认安装好后直接在命令行里输入
$ jupyter notebook
类似如下图:

如上图,新建-->Python3 创建如下图交互式带提示的python命令行

输入print("Hellow world") 点运行即可执行看到效果;

新建终端时,直接以登录系统身份登录系统终端如图:

然而这么好的工具,这么方便的操作只能运行在本地?如果在局域网或端口映射后能在外面操作,通过密码登录;岂不是很完美?查看了官方网站教程,别说还真有
下次就配置下把jupyter notebook开放在本地的任何接口上,并且配置https形式,这样传输就安全啦~

三、jupyter notebook使用进阶

1、配置密码

$ jupyter notebook password
Enter password:  ****
Verify password: ****

以上操作会在我的家目录下生成 /home/san/.jupyter/jupyter_notebook_config.json
文件,密码以hash保存如下:

$  /home/san/.jupyter/jupyter_notebook_config.json
{
  "NotebookApp": {
    "password": "sha1:74432c61ae9b:26c35e70239jfe7e3dc4b177d140d4ac7f560e1f"
  }
}

些时结束之前的jupyter notebook实例再次运行,会提示输入密码,如图:

此时只有输入正确的密码后才能正常登录使用jupyter 啦!

2、侦听非本地接口
默认出于安全jupyter只运行侦听在本地,想把这么好的功能放在网络上使用需要生成添加配置文件

$ jupyter notebook --generate-config

运行后会在家目录.jupyter/下生成jupyter_notebook_config.py文件
修改内容如下:

c.NotebookApp.ip = ‘0.0.0.0‘
c.NotebookApp.open_browser = False
c.NotebookApp.password = "sha1:74432c61ae9b:26c35e70239jfe7e3dc4b177d140d4ac7f560e1f"
c.NotebookApp.port = 8888

注意:按官方的c.NotebookApp.ip = ‘*‘ 报错,换成0.0.0.0则可以
可以看到不仅可以自定义侦听地址,还可以修改侦听端口;

$ netstat -ntpul |grep python3
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      2403/python3

此时就可以通过本地的ip或loclahost :8888访问啦

3、jupyter配置https
创建私钥并自签:

$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.key -out mycert.pem

运行以上命令如下需要填写相关信息如图:

以https方式启动:

$ jupyter notebook --certfile=mycert.pem --keyfile mykey.key
[I 13:30:22.165 NotebookApp] 启动notebooks 在本地路径: /home/dongyc/ipython
[I 13:30:22.165 NotebookApp] 本程序运行在: https://(san-Vostro-3660 or 127.0.0.1):8888/
[I 13:30:22.165 NotebookApp] 使用control-c停止此服务器并关闭所有内核(两次跳过确认).

注意:证书文件需要绝对路径;
此时可以使用https://10.8.11.65:8888 或https://localhost:8888进行访问啦 如图:

到这里jupyter notebook基本配置完成了,但有一个问题,每次启动jupyter都要切换到一个指定目录(就是上图中文件列出来的内容所在目录);而且还要占用一个终端;
还是搞一个后台服务,开机自动运行吧,以下的内容是官方没有的,本人自己捣鼓的;

4、jupyter服务

#!/bin/bash
# author: by san at 20180929
### BEGIN INIT INFO
# Provides:             jupyter
# Required-Start:       $syslog $remote_fs
# Required-Stop:        $syslog $remote_fs
# Should-Start:         $local_fs
# Should-Stop:          $local_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    jupyter notebook deamon
# Description:          jupyter notebook with https deamon
### END INIT INFO

. /home/san/functions      # 这个类似redhat系列上的/etc/init.d/functions shell库 你的系统自行找,如找不到请联系我
prog=jupyter
pidfile=${PIDFILE-/tmp/jupyter.pid}
lockfile=${LOCKFILE-/tmp/jupyter}
RETVAL=0

START(){
if [ ! -f ${pidfile} ]; then
cd /home/san/ipython
echo -n $"Stopping jupyter notebook:"
nohup /usr/local/bin/jupyter notebook  --certfile=/home/san/mycert.pem --keyfile /home/san/mykey.key >/tmp/jupyter.log 2>&1 &
 [ "$?" -eq 0 ] && success $"$base startup" || failure $"$base startup"
 jupyter_pid=$(ps aux |grep jupyter |grep -v grep|awk ‘{print $2}‘)
 echo $jupyter_pid >$pidfile
  RETVAL=$?
    echo
 [ $RETVAL = 0 ] && touch ${lockfile}
     return $RETVAL
else
  status -p ${pidfile}
  exit 0
 fi

}

STOP(){
        echo -n $"Stopping jupyter notebook:"
        nohup kill -15 $(ps aux |grep jupyter |grep -v grep|awk ‘{print $2}‘)  >/dev/null 2>&1 &
        [ "$?" -eq 0 ] && success $"$base startup" || failure $"$base startup"
        echo
        [ -f ${pidfile} ] && rm -rf ${pidfile}
        [ -f ${lockfile} ] && rm -rf ${lockfile}
}

case $1 in
    start)
    START
    ;;
    stop)
    STOP
    ;;
    restart)
    STOP
    START
    ;;
    status)
    status -p ${pidfile} $prog
    /usr/local/bin/jupyter notebook list
    RETVAL=$?
    ;;
    *)
   echo "USAGE:start|stop|restart"
    ;;
esac

添加可执行权限

$ chmod +x /etc/init.d/jupyter

测试脚本 如图:

可以发现脚本可以执行;会自动读取当前登录系统用户的家目录下.jupyter下的配置文件;官方说把密钥和签名证书配置到配置文件中,但我测试下来找不到证书,所以把证书当启动参数放到,服务脚本中了,这是正常的;
系统重启会自动启动jupyter notebook 侦听在8888上,系统关闭时,会自动关闭jupyter服务; upyter notebook可以运行多实例;即默认随机启动侦听在8888 再次在终端上执行时会侦听在8889端口 如图:

此时你会发现 一台服务器可以开多个实例,给多个人测试使用~是不是很方便很好用?赶紧试试吧~

原文地址:http://blog.51cto.com/dyc2005/2287510

时间: 2024-07-29 18:28:36

ubuntu 16.04安装jupyter notebook使用与进阶的相关文章

Ubuntu 16.04 安装 Kodi v17 “Krypton” Alpha 2

Ubuntu 16.04 安装 Kodi v17 “Krypton” Alpha 2:sudo add-apt-repository ppa:team-xbmc/xbmc-nightlysudo apt-get updatesudo apt-get install kodi 安装插件编码sudo apt-get install kodi-audioencoder-* kodi-pvr-* 移除 Kodi v17sudo apt-get remove kodi* 本文永久更新地址:http://w

Ubuntu 16.04安装QtCharts时报错:'qtConfig' is not a recognized test function.

错误: 'qtConfig' is not a recognized test function. 解决方法: 其实5.9分支的版本有问题,转成5.7分支即可. git clone https://github.com/qtproject/qtcharts.git cd qtcharts git checkout 5.7 qmake make sudo make install 参考: http://php.wekeepcoding.com/article/10792742/Cross-comp

Ubuntu 16.04安装QQ国际版图文详细教程

      因工作需要,我安装了Ubuntu 16.04,但是工作上的很多事情需要QQ联系,然而在Ubuntu上的WebQQ很是不好用,于是在网上搜索了好多个Linux版本的QQ,然而不是功能不全,就是界面丑到爆,要么就是不稳定:最后,找到了个人认为最好用的QQ-WineQQ国际版. 说明:一开始,我在Ubuntu 16.04下安装的QQ版本是Wineqq2013SP6-20140102-Longene,但后来发现这个版本QQ在linux下问题很多,比如不能 用键盘输入密码,QQ表情使用失灵,有

Ubuntu 16.04 安装 Docker

Ubuntu 16.04 安装 docker 是一件很麻烦的事情,但鉴于 docker 的各种优点,还是忍了.参考docker官网. 1.选择国内的云服务商,这里选择阿里云为例 curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh - 2.安装所需要的包 sudo apt-get install linux-image-extra-$(uname -r) linux-

Ubuntu 16.04 安装 QT Create 5.3.1

Ubuntu 16.04 安装 QT Create 5.3.1 (qt-opensource-linux-x86-5.3.1.run)后新建一个 QT Quick 的工程.直接编译,出现如下错误的提示: qt cannot find lgl 刚开始按网上的方法,需要修改依赖库的版本,但依赖是一层接着一层,唉...... 最后找到如下的解决方法(参考如下链接: http://blog.csdn.net/u012175418/article/details/52078291): [email pro

Ubuntu 16.04 安装QQ解决方案

1 前言 经过3天的折腾,研究了一下Linux下安装QQ的几种方法,总结一下,Linux下安装QQ的方法主要有以下几种: 安装wineQQ国际版 VirtualBox安装windows,再安装QQ,然后开启无缝模式 Genymotion模拟器安装安卓QQ crossover安装TMQQ2013或者DeepinQQ 首先声明,Linux下没有一种方法能够达到windows qq的那种体验,所以有很多安装方法,每种方法都或多或少有不爽的地方,qq对于linux很不友好,所以博主安装后的体会是: 珍惜

Ubuntu 16.04 安装Mysql 5.7 踩坑小记

title:Ubuntu 16.04 安装Mysql 5.7 踩坑小记 date: 2018.02.03 安装mysql sudo apt-get install mysql-server mysql-client 测试是否安装成功 sudo netstat -tap | grep mysql 相关操作 登录 mysql -uroot -p 检查MySQL服务器占用端口 netstat -nlt|grep 3306 检查MySQL服务器系统进程 ps -aux|grep mysql 查看数据库的

Ubuntu 16.04安装Java JDK

Java JDK有两个版本,一个开源版本Openjdk,还有一个Oracle官方版本jdk.下面记录在Ubuntu 16.04上安装Java JDK的步骤. 安装openjdk 更新软件包列表: $ sudo apt-get update 安装openjdk-8-jdk: $ sudo apt-get install openjdk-8-jdk 查看java版本: $ java -version 安装Oracle Java JDK 首先,安装依赖包: $ sudo apt-get install

Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法)

Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法) https://blog.csdn.net/ksws0292756/article/details/79511170 本文主要介绍安装opencv C++接口和python接口的几种方法. 首先介绍C++接口的,然后介绍Python接口的 C++接口安装 采用源码编译的安装方式,基本也就是这种方法了,首先在官网下载你想安装的版本的opencv压缩包,下载连接如下: https://github.