如果想同过一个Web浏览器的方式远程访问服务器上的ipython notebook sever,可通过下面的步骤实现。

服务器:ubuntu14.04 server

客户端:windows/unix/linux均可+浏览器

  1. 创建certificate 文件 和 hash密码

    In [1]: from IPython.lib import passwd
    In [2]: passwd()
    Enter password:
    Verify password:
    Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'
  2. 使用openssl创建一个自签名证书,由于是自签名所以浏览器会提示警告,选择信任exception即可。如果不想引起警告,需具备合格证compliant certificate,可参照tutorial
    $ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

    此处需要注意到的是记住你生成的证书mycert.pem的路径,另外,由于你启用了ssl支持,所以在访问notebook server时需要用https://而非http:// 

  3. 通过ssl使得你通过浏览器发送的密码是加密的,你可以在安全协议模式下使用自签名的认证来启用notebook
    $ ipython notebook --certfile=mycert.pem
  4. 为notebook定制一个配置文件,此配置是基于用户而非全局的。命令执行后会提示生成的文件和位置
    $ ipython profile create nbserver
  5. 修改刚才create nbserver时生成的ipython_notebook_config.py文件
    #,默认情况下ipython_notebook_config.py位于~/.ipython/profile_nbserver/目录下
    
    c = get_config()
    
    # Kernel config
    c.IPKernelApp.pylab = 'inline' # 使用pyplot绘制功能 # Notebook config
    c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem'
    c.NotebookApp.ip = '*'
    c.NotebookApp.open_browser = False
    c.NotebookApp.password = u'sha1:bcd259ccf...[之前生成的hash密码]'
    # It is a good idea to put it on a known, fixed port
    c.NotebookApp.port = 8035 #选择一个端口
  6. 最后在远程服务器键入命令
    ipython notebook --profile=nbserver

    之后便可在本地机器上使用Web浏览器访问notebook了

    https://[IP or your.host.com]:8035

    (此处比较诡异的是需要加一位才对(https://[IP or your.host.com]:8036),后来才发现,8035已经被一个程序占用了,ipython会另选一个端口号使用)

安装特定版本的Package请使用

pip install ipython==2.3.0

小记:ipython版本若是为4.0会出错,因为4.0版本为开发版,使用上面命令ipython profile create nbserver时不会创建ipython_notebook_config.py(坑。。。),最后终于在http://r97846001.blog.ntu.edu.tw/2015/07/09/ipython-importerror-no-module-named-jupyter_notebook-notebookapp/发现是版本的问题,所以需要安装适用的版本,但是!!!不需要按照他说的下载源文件或release安装的。。。,之前使用了pip install ipython=2.3.0发现不行,故狂搜乱找以为是其他问题,最后发现原来要用双等号啊~泪。。。http://nu-no.nl/ipython-server-cant-launch-no-module-named-notebook-notebookapp/,正所谓,“山重水复疑无路,柳暗花明又一村”,写次小记,特此纪念。

通过web远程访问服务器的ipython的更多相关文章

  1. 服务器(Ubuntu)远程访问ipython notebook(服务器运行ipython notebook 本地浏览器访问)

    准备工作 首先要安装 ipython 推荐直接 Anaconda 搞起(装在服务器). Anaconda 帮你集成N多python相关环境(包),省得你再手动咔咔一顿安装 服务器启动ipython n ...

  2. 在windows上远程访问服务器jupyter notebook

    需求: 之前在服务器上只能运行完整的python文件,而不能实现jupyter notebook的交互模式,通过在本地浏览器上远程访问服务器上的jupyter notebook,这样不就能有一个很棒的 ...

  3. Nodejs实现web静态服务器对多媒体文件的支持

    前几天,一个同事说他写的web静态服务器不支持音视频的播放,现简单实现一下. 原理:实现http1.1协议的range部分. 其实这一点都不神秘,我们常用的下载工具,如迅雷,下载很快,还支持断点续传, ...

  4. [置顶] java web 动态服务器

    写了一个java web 动态服务器,主要通过内部类来实现,动态类使用了外部类,采用了 classforname 实例化,动态类的构造方法不能带参数, 效果都出来了,分享给有需要的 朋友.判断做的不够 ...

  5. web server服务器

    使用最多的 web server服务器软件有两个:微软的信息服务器(iis),和Apache. 通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序 ...

  6. express搭建简易web的服务器

    express搭建简易web的服务器 说到express我们就会想到nodejs,应为它是一款基于nodejs平台的web应用开发框架.既然它是基于nodejs平台的框架那么就得先安装nodejs. ...

  7. office web apps 部署-搭建office web apps服务器

    二.搭建office web apps服务器 相关文件可以去焰尾迭分享的百度网盘下载,下载地址:http://pan.baidu.com/s/1o6tCo8y#path=%252Foffice%252 ...

  8. 5.Nginx作为web缓存服务器

    Nginx作为web缓存服务器 从0.7.48版本开始,Nginx支持类似Squid的缓存功能.Nginx的web缓存服务主要由proxy_cache相关命令集合fastcgi_cache相关命令集构 ...

  9. WEB站点服务器安全配置

    WEB站点服务器安全配置   本文转自:i春秋社区   // 概述 // 熟悉网站程序 // 更改默认设置的必要性 // 目录分析与权限设置技巧 // 防止攻击其他要素 // 公司官网不可忽视的安全性 ...

随机推荐

  1. 关于VFP9.0备注字段(memo)插入编辑问题

    最近在做项目 用VFP9.0这个比较古老的数据库,有个问题一直纠结我很久.就是memo这个备注字段,你在insert 的时候只要插入的字符串数据超过64K的时候就会出错. 之后我一直在找原因原来是备注 ...

  2. 两个有序list合并

    package 剑指office; import java.util.ArrayList; import java.util.List; public class ListMerge { /** * ...

  3. c++多线程同步使用的对象

    线程的同步 Critical section(临界区)用来实现“排他性占有”.适用范围是单一进程的各线程之间.它是: ·         一个局部性对象,不是一个核心对象. ·         快速而 ...

  4. 有关va_list和vsnprintf输出函数的问题

    va_list ap; //声明一个变量来转换参数列表 va_start(ap,fmt); //初始化变量 va_end(ap); //结束变量列表,和va_start成对使用 可以根据va_arg( ...

  5. C++中指针和引用的选择

    何时使用引用和指针      1. 尽可能使用引用传递参数      2. 尽可能的使用const来保护引用和指针      3. 在可以使用引用的时候不要使用指针      4. 不要试图给引用重新 ...

  6. c 陷阱与缺陷(一)

    1.程序在设计时,往往得出正确的结果,但是它并不是程序员自己想要的. 例如: printf("hello world!") 编译器进行编译时不会出现任何问题,但是结果: 提示竟然出 ...

  7. Python核心编程笔记--unicode编码

    #定义编码方式,与物理文件. code='utf-8'file='D:/utf8.txt' #把编码后的字符写入文件. hello_out =u'hello world'bytes_out =hell ...

  8. 30款javascript脚本插件 jquery插件大全

      Shifty Nav - a Fully Responsive JS CSS3 Mega Menu Show Demo Shifty Nav is a fully responsive CSS3 ...

  9. 转:CSS3 Flexbox 布局介绍

    转:CSS3 Flexbox 布局介绍 Flexbox是一个用于页面布局的全新CSS3模块功能.它可以把列表放在同一个方向(从左到右或从上到下排列),并且让这些列表能延伸到占用可用的空间.较为复杂的布 ...

  10. (8) Xamarin使用Jar檔

    原文 Xamarin使用Jar檔 这个范例是如何在Xamarin.Android中去使用一个我们自行在开发的JAR档案. 主要会执行的步骤如下 在Xamarin建立一个Android Java Bin ...