注:转自http://xiaoquanzi.net/?p=81
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_mathjax install_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 config c.IPKernelApp.pylab = 'inline' # if you want plotting support always # 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...your hashed password here' # It's a good idea to put it on a known, fixed port c.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 passwd In [2]: passwd()
设定你的密码即可(现在0.13版还不支持多人的notebook,因此只能单用户使用,只支持一个密码罢了,多用户功能处在开发中)。
好了,现在启动你的public的IPython notebook吧:
ipython notebook --profile=nbserver
然后你就可以在浏览器里远程访问你的IPython notebook了。