jupyter其实就是ipython notebook的另一个版本,是一个很强大的基于ipython的python代码编辑器,python文档查看器。他可以部署在网页上,可以非常方便的对文件进行查看、下载,并且对python文件进行在线编译,甚至是远程连接。。。。。。用他编写的python文件本身就是一个强大的开发文档。更重要的是很多基于python开发的开源程序都热衷于用.ipynb格式的文件作为文档(比如caffe)。因此掌握jupyter的使用也尤为重要。
Ipython notebook
简介
首先我们来探讨下jupyter的前身,ipython notebook。直接输入命令$ipython notebook
即可在浏览器中自动打开一个界面,显示了当前路径下的文件树。在这当中我们可以自由的编辑、处理文件,编写运行python文件等等。我们一方面可以用它来编程,另一方面也可以把他当成一个远程文件管理器,界面好看,用起来也十分的方便。
既然如此,我们就试着在服务器上搭建一个ipython notebook服务。
服务器配置
详细的文档可见ipython官方文档,这里是结合文档进行的配置。
配置文件
配置文件默认在~/.ipython/profile_default/文件夹中,这里default是profile 的用户名,也是我们打开notebook的默认用户。但是有时候我们会发现这里面的东西并不像配置文件。其实我们只需要输入如下命令即可把默认的配置文件给显示出来:$ipython profile create default
很好理解,就是显式的创建一个default用户(当然我们还可以创建其他名字的用户)。
现在,打开~/.ipython/profile_default/ipython_notebook_config.py文件,这个就是我们的配置文件了。
设置密码
由于ipython notebook 远程登陆的话权限很大,因此还是设置一个密码来保证安全。
1、首先我们要得到密码的哈希值,在ipython 中进行如下操作:
1 | In [1]: from IPython.lib import passwd |
在这里输入密码,就可以得到他的hash值了。记住Out[2]中的字符串。
2、然后在配置文件ipython_notebook_config.py中写如入下面的信息:
1 | c = get_config() |
这样就可以了。
配置接入点
这是稍微麻烦的地方,因为ipython的端口默认是8888而且不能跟apache2的冲突,所以在配置的时候需要想办法用一个优雅的姿势来用apache2访问到8888端口。
1、首先对配置文件进行一下设置,打开ipython_notebook_config.py,加入下面的信息:
1 | c.IPKernelApp.pylab = 'inline' # if you want plotting support always |
RewriteCond %{HTTP_HOST} ^ipython.mythsman.com$ [NC]
RewriteCond %{REQUEST_URI} ^/(.)$ [NC]
RewriteRule ^(.)$ http://ipython.mythsman.com:8888/%1 [R=301,L]
1 | 意思很简单,就是把ipython.mythsman.com的80端口重定向到8888端口。而这个站点的根目录其实就是我们打开ipython notebook 服务的那个目录。 |
RewriteCond %{HTTP_HOST} ^jupyter.mythsman.com$ [NC]
RewriteCond %{REQUEST_URI} ^/(.)$ [NC]
RewriteRule ^(.)$ http://jupyter.mythsman.com:8888/%1 [R=301,L]
在想要显示的文件夹处输入jupyter notebook,即可在jupyter.mythsman.com处访问到jupyter。