IPython notebook搭建

来源:互联网 发布:程序员写博客的好处 编辑:程序博客网 时间:2024/05/20 02:26

IPython比Python本身自带的IDLE强大太多了,今天稍窥一角,叹服不已。

0.12引入的notebook功能更是强大到震憾。

notebook是web based IPython封装,但是可以展现富文本,使得整个工作可以以笔记的形式展现、存储,对于交互编程、学习非常方便。

安装步骤有点小麻烦,依赖稍多。linux下在公司的测试机上还没成功,貌似是因为不支持https协议。在自己机器上windows版本是安装ok的,下面按照windows的安装说一下。也可以直接参考官方安装说明。

1、安装Python

这个是必须的,现在是python2.7.3了,在http://www.python.org/download/下载。按照自己的平台下载对应的版本,然后安装即可。

2、安装IPython

IPython的官网很容易找到,在baidu/google中输入"ipython",就能很容易的找到:ipython.org/,可以自行找到IPython的下载,或者直接访问http://pypi.python.org/pypi/ipython获取最新的ipython即可。

安装完毕后,会在你的python目录下出现一个Scripts的目录,ipython的一些主要文件都在里面。

3、安装pyreadline (only for windows)

只有windows平台需要安装它,可在http://pypi.python.org/pypi/pyreadline处下载。

4、安装pyzmq

notebook是基于web的,而套接字信息传递使用的是zeromq,所以需要安装。

在http://pypi.python.org/pypi/pyzmq找到最新的版本下载安装。

安装文件可能是egg格式的,你需要安装一下easy_install,这个东西baidu一下就ok,安装完毕后在你的python目录下的Scripts中应该就能找到它,然后用它安装egg即可。

5、安装Tornado

因为notebook是基于web的,因此需要一个web server,官方用的是Tornado。

在http://www.tornadoweb.org/找到最新版本安装。

6、安装MathJax

ipython的一大特点就是支持科学计算,为了能够方便地显示数学符号、公式,需要MathJax的支持。安装很简单,打开一个IPython的shell,然后键入如下代码:

from IPython.external.mathjax import install_mathjaxinstall_mathjax()
  • 启动本地notebook

随便找一个shell,在windows里,最简单的cmd.exe就行,键入:

ipython.exe notebook

即可。

  • 远程访问notebook

如果需要远程访问,就稍微麻烦一点:

首先,需要建立一个server的config,通过在命令行键入:

ipython profile create nbserver

然后,修改新建的profile,即ipython_notebook_config.py(命令行会有输出,告诉你生成的文件在哪里),默认的config文件都是被注释掉的,你需要至少修改如下的项:

c = get_config()# Kernel configc.IPKernelApp.pylab = 'inline'  # if you want plotting support always# Notebook configc.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem'c.NotebookApp.ip = '*'c.NotebookApp.open_browser = Falsec.NotebookApp.password = u'sha1:bcd259ccf...your hashed password here'# It's a good idea to put it on a known, fixed portc.NotebookApp.port = 9999

但是,你需要注意的是,我们还没有mycert.pem,这个也很简单,使用openssl生成一个就行,如果你手头有linux机器的话就极其简单了:

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

再接着,需要生成一串哈希后的密钥,随便开一个IPython的shell键入:

In [1]: from IPython.lib import passwdIn [2]: passwd()

设定你的密码即可(现在0.13版还不支持多人的notebook,因此只能单用户使用,只支持一个密码罢了,多用户功能处在开发中)。

好了,现在启动你的public的IPython notebook吧:

ipython notebook --profile=nbserver

然后你就可以在浏览器里远程访问你的IPython notebook了。

0 0
原创粉丝点击