ubuntu下设置jupyter notebook

 
 

来源:http://blog.csdn.net/suzyu12345/article/details/51037905

Ipython Notebook现在已经改名为Ipython jupyter,是最知名最好用的Python数据分析工具。
下面讲讲怎么在Linux下安装ipython jupyter,以及远程访问,我这里是在虚拟机中配置ipython,windows访问虚拟机中的ipython jupyter。

1. 安装anaconda

anaconda是目前python数据分析最好用的发行版,集成了很多常用的数据分析模块,如果是自己安装python环境,坑很多的。
在linux下安装也很简单,将anaconda.sh上传到linux后,执行 bash anaconda.sh,根据提示安装即可,最后一部是询问是否将python加入环境变量,选择yes,当然你也可以在安装完后手动添加到bash中。
下面的安装完后的.bashrc添加的python环境变量:

  1. # added by Anaconda3 4.2.0 installer
  2. export PATH="/home/zhenyu/anaconda3/bin:$PATH"

2. 配置ipython jupyter

2.1.生成配置文件

  1. # 生成配置文件
  2. jupyter notebook --generate-config
  3. # 此时生成配置文件:
  4. # Writing default config to: /home/zhenyu/.jupyter/jupyter_notebook_config.py
  5. # 创建登录密码
  6. # 打开ipython,生成密钥
  7. $ ipython
  8. from notebook.auth import passwd
  9. passwd()
  10. Enter password:
  11. Verify password:
  12. Out[2]: 'sha1:6f6193fcfbd5:614c4ba185334868fc8bbce2e9890b3ef7d1a79b'
  13. # 我这里创建的密码是123456,对应的密钥是sha1xxxx的那一串
  14. # 然后退出ipython

2.2.创建自签名的证书

使用openssl创建一个自签名证书,由于是自签名所以浏览器会提示警告,选择信任exception即可。如果不想引起警告,需具备合格证compliant certificate,参考[http://arstechnica.com/security/2009/12/how-to-get-set-with-a-secure-sertificate-for-free/]
如果是内网访问不担心安全问题,不使用ssl速度会快一些。

  1. # 在linux下执行,遇到询问的地方一路回车即可
  2. openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
  3. # 会在当前文件夹下生成 mycert.pem,我将它移到.jupyter/secret文件夹下面,方便管理
  4. # 先创建.secret文件夹
  5. cd .jupyter
  6. mkdir secret
  7. # 移动
  8. cd ~
  9. mv mycert.pem .jupyter/secret/

2.3.修改配置文件

  1. # 打开刚才创建的.jupyter/jupyter_notebook_config.py,先备份源文件,然后再修改
  2. # 备份
  3. $ cp .jupyter/jupyter_notebook_config.py .jupyter/jupyter_notebook_config.py_bak
  4. # 修改如下,可以先删除里面的内容添加,也可以修改,或者直接在头部添加,反正里面的原先的内容都是注释掉的:
  5. vi /home/zhenyu/.jupyter/jupyter_notebook_config.py
  6. c = get_config()
  7. # Kernel config
  8. c.IPKernelApp.pylab = 'inline' # if you want plotting support always
  9. c.NotebookApp.ip = '*' # 就是设置所有ip皆可访问,在144行
  10. c.NotebookApp.open_browser = False # 禁止自动打开浏览器
  11. # 密钥,在194行。该密钥就是2.1步生成的
  12. c.NotebookApp.password = 'sha1:74d233d59da1:50d7ef60a58456e2016dc427547fb42cdd971cea'
  13. c.NotebookApp.port = 6789 # 访问端口,在197行
  14. # 自签名证书位置,如果不使用ssl,可以不设置
  15. c.NotebookNotary.secret_file = '/home/zhenyu/.jupyter/secret/mycert.pem'
  16. c.NotebookApp.keyfile = '/home/zhenyu/.jupyter/.secret/mykey.key'
  17. # 设置目录,存放创建的ipython notebook文件
  18. c.NotebookApp.notebook_dir = '/home/zhenyu/ipython'

3. 防火墙开放端口

启动jupyter notebook后,在虚拟机中打开浏览器可以在访问ipython jupyter,但是远程是无法连接的,因为防火墙啊。

  1. # 使用root用户
  2. su
  3. # 开放6789端口
  4. /sbin/iptables -I INPUT -p tcp --dport 6789-j ACCEPT
  5. 保存
  6. /etc/rc.d/init.d/iptables save
  7. 重启服务
  8. service iptables restart

4.远程访问

  1. # 启动ipython jupyter,不使用ssl
  2. jupyter notebook
  3. # 或者开启ssl
  4. # jupyter notebook --certfile=mycert.pem --keyfile mykey.key
  5. jupyter notebook --certfile=/home/zhenyu/.jupyter/secret/mycert.pem
  6. # 输出,看最后一行,此时jupyter notebook 可以接受任何IP访问。
  7. [I 12:55:05.929 NotebookApp] [nb_conda_kernels] enabled, 2 kernels found
  8. [W 12:55:05.960 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
  9. [I 12:55:06.078 NotebookApp] The Jupyter Notebook is running at: http://[all ip addresses on your system]:6789/

此时打开浏览器输入 http://192.168.138.130:6789/即可访问虚拟机中的ipython notebook。

5.日志和后台进程

上面的启动方式,会在当前目录生成一个日志文件,我忘了叫上面名字,总之随着jupyter notebook的运行,日志文件会越来越大,如果不是很重要,可以设置不记录日志,方法是将所有的输出都重定向到/dev/null 2>&1 &
此外,上面的启动方式是启动一个前台进程,如果ssh连接断开,jupyter notebook也就失效了,所以需要将jupyter notebook作为一个后台进程启动,在linux中是nohup命令。

  1. # 不启动ssl,不记录日志输出,作为后台进程启动jupyter notebook
  2. nohup jupyter notebook >/dev/null 2>&1 &

6.停止jupyter notebook

jupyter notebook作为后台进程启动后,如果想要停止它,可以先找到进程ID,然后kill。

  1. # 查看进程
  2. ps -ef | grep 'jupyter notebook'
  3. # 输出如下,这里的21983即为进程id,
  4. # hadoop 22136 21983 0 09:10 pts/1 00:00:00 grep jupyter notebook
  5. # 杀死进程
  6. kill -9 21983
  7. # 此时浏览器无法再连接jupyter notebook了吧。

参考

http://jupyter-notebook.readthedocs.io/en/latest/public_server.html
http://www.cnblogs.com/zhanglianbo/p/6109939.html
http://blog.csdn.net/gavin_john/article/details/53177630
http://jingyan.baidu.com/article/335530daa4707f19cb41c3ef.html

ubuntu下设置jupyter notebook 2017年07月29日 19:28:34 小旋锋 阅读数:8329 标签: ubuntu 更多 个人分类: python 二三事 来源:http://blog.csdn.net/suzyu12345/article/details/51037905 Ipython Notebook现在已经改名为Ipython jupyter,是最知名最好用的的更多相关文章

  1. 微信小程序真机预览跟本地不同的问题。原文地址:https://blog.csdn.net/qq_27187991/article/details/69664247/

    微信小程序中出现最多的一个问题,就是真机跟本地不同:我简单列举一些我发现的原因,给大家参考,大家也可以把自己发现的东西回复给我,给我参考: 本地看不到数据,就先让本地能看到数据,再看本帖....特别提 ...

  2. [转]Windows Shell 编程 第四章 【来源 http://blog.csdn.net/wangqiulin123456/article/details/7987933】

    第四章 文件的本质 以前,所有文件和目录都有一个确定的属性集:时间,日期,尺寸,以及表示‘只读的’,‘隐藏的,‘存档的’,或‘系统的’状态标志.然而,Windos95(及后来的WindowsNT4.0 ...

  3. python 惰性求值 https://blog.csdn.net/Appleyk/article/details/77334221

    为什么调用的不是同一个函数呢 是因为调用函数后,函数的生命周期就结束了,再调用就是另一个函数了

  4. 手机网络抓包 转载记录http://blog.csdn.net/skylin19840101/article/details/43485911

    Fiddler不但能截获各种浏览器发出的HTTP请求, 也可以截获各种智能手机发出的HTTP/HTTPS请求.Fiddler能捕获IOS设备发出的请求,比如IPhone, IPad, MacBook. ...

  5. Windows下QT4.8.4编译环境的搭建(转载http://blog.csdn.net/bestgonghuibin/article/details/38933141)

    开始使用QT了,所以第一步就是把环境搭起来,这里小记一下,以免以后忘记. 1. 下载安装文件 要使用QT功能,那么必须要下载QT的源码,还必须要一个是用QT的编译环境,可以是VS2010,也可以是专用 ...

  6. IntelliJ Idea 常用快捷键列表 (需整理下) https://blog.csdn.net/dc_726/article/details/42784275

    [常规] https://blog.csdn.net/dc_726/article/details/42784275https://jingyan.baidu.com/article/59a015e3 ...

  7. Linux下nf_conntrack(最全面)_董明磊-CSDN博客_nf_conntrack https://blog.csdn.net/qq_35299863/article/details/79530732

    Linux下nf_conntrack(最全面)_董明磊-CSDN博客_nf_conntrack https://blog.csdn.net/qq_35299863/article/details/79 ...

  8. Socket的用法——NIO包下SocketChannel的用法 ———————————————— 版权声明:本文为CSDN博主「茶_小哥」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/ycgslh/article/details/79604074

    服务端代码实现如下,其中包括一个静态内部类Handler来作为处理器,处理不同的操作.注意在遍历选择键集合时,没处理完一个操作,要将该请求在集合中移除./*模拟服务端-nio-Socket实现*/pu ...

  9. 梧桐那时雨http://blog.csdn.net/fuchaosz/article/details/51882935?readlog

    Ubuntu 16.04 一系列软件安装命令,包括QQ.搜狗.Chrome.vlc.网易云音乐安装方法 原创 2016年07月20日 11:44:01 标签: ubuntu 27024 1 简介 Ub ...

随机推荐

  1. 界面编程之QT的基本介绍与使用20180722

    /*******************************************************************************************/ 一.qt介绍 ...

  2. 在Linux中以普通用户开机自动运行脚本程序

    测试环境:CentOS6.5 管理员:root 普通用户:test1 实现目标:在Linux启动时,以普通用户test1自动运行位于根目录下的脚本程序test.py,该程序会在每次执行时自动向本地日志 ...

  3. 无焦点下获取条码枪返回值的Hook(再次改良版)

    针对上一个版本再次改良,上除掉无用代码,新手绝对可以看懂! using System; using System.Collections.Generic; using System.Linq; usi ...

  4. Angular.js浅谈

    至今博主对于MVVM框架比较了解的就只能算有Angular了,首先给大家明确一个概念,Angular1.x才能叫Angular.js,而Angular2.4.5都直接叫Angular了,因为从2开始已 ...

  5. scala 基础到高阶

    本文打算对这小段时间学习 scala 以及 spark 编程技术做个小结,一来温故而知新,而来为以后查阅方便 spark scala 入门小例子  文本文件 UserPurchaseHistory.c ...

  6. js数组方法forEach,map,filter,every,some实现

    Array.prototype.map = function(fun /*, thisp*/) { var len = this.length; if (typeof fun != "fun ...

  7. Socket心跳包机制【转】

    转自:https://blog.csdn.net/xuyuefei1988/article/details/8279812 心跳包的发送,通常有两种技术 方法1:应用层自己实现的心跳包 由应用程序自己 ...

  8. Mycat 配置及优化【转】

    前言 Mycat 是一个数据库分库分表中间件 MyCAT 是作为通用代理设计的,后端是以 Mysql协议 和 JDBC 的方式连接数据库,可以支持 Oracle.DB2.SQL Server . mo ...

  9. Linux6.5 安装Python3.X(转载)

    1.获取Python 3.6.3 通过官网https://www.python.org/downloads/下载Python 3.4.3源码: 源码获取命令如下:wget https://www.py ...

  10. sys和os模块

    一 sys 用于python解释器相关的操作 #!/usr/bin/env python # coding=utf-8 import time import sys def view_bar(num, ...