IPython比Python本身自带的IDLE强大太多了,今天稍窥一角,叹服不已。0.12引入的notebook功能更是强大到震憾。
notebook是web based IPython封装,但是可以展现富文本,使得整个工作可以以笔记的形式展现、存储,对于交互编程、学习非常方便。安装步骤有点小麻烦,依赖稍多。在自己机器上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即可。
下载完成IPython后,解压,通过命令python setup.py install来安装。
安装完毕后,会在你的python目录下出现一个Scripts的目录,ipython的一些主要文件都在里面。
ps:有的教程说安装完IPython后还需要安装pyreadline(http://pypi.python.org/pypi/pyreadline),其实在安装IPython时已经自带的将其安装了。当然,如果你的IPython没有自动将其安装,去上面连接下载pyreadline安装即可。
3、安装pyzmq
notebook是基于web的,而套接字信息传递使用的是zeromq,所以需要安装。
在http://pypi.python.org/pypi/pyzmq找到最新的版本下载安装。安装文件可能是egg格式的,你需要安装一下easy_install,这个东西baidu一下就ok,安装完毕后在你的python目录下的Scripts中应该就能找到它,然后用它安装egg即可。
ps:我是去http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyzmq下载的安装版的pyzmq-14.0.1.win32-py2.7.exe,直接安装即可,很是方便。
4、安装Tornado
因为notebook是基于web的,因此需要一个web server,官方用的是Tornado。在http://www.tornadoweb.org/找到最新版本安装。
ps:我是直接在命令行下通过pip install tornado 来安装的
5、安装MathJax
ipython的一大特点就是支持科学计算,为了能够方便地显示数学符号、公式,需要MathJax的支持。安装很简单,打开一个IPython的shell,然后键入如下代码:
from IPython.external.mathjax import install_mathjax install_mathjax()
6、安装jinja2
通过命令pip install jinja2来安装该模块。
———————————————————————————————————————————————
执行完上述几步后,IPython notebook就成功安装了。启动notebook分为本地notebook和远程访问notebook。本地notebook是指只能本机访问,其他人不能通过网络访问。远程访问notebook是指不仅本机可以访问,其他人通过网络亦可访问。
- 启动本地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
(1)但是,你需要注意的是,我们还没有mycert.pem,这个也很简单,使用openssl生成一个就行,如果你手头有linux机器的话就极其简单了:
$ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
(2)要配置上面的password,需要生成一串哈希后的密钥,随便开一个IPython的shell键入:
In [1]: from IPython.lib import passwd In [2]: passwd()
设定你的密码即可(现在0.13版还不支持多人的notebook,因此只能单用户使用,只支持一个密码罢了,多用户功能处在开发中)。
好了,现在启动你的public的IPython notebook吧:
ipython notebook --profile=nbserver
然后你就可以在浏览器里远程访问你的IPython notebook了。
ps:上面端口要选取一个没被占用的,我刚开始选取9999,结果启动后一直报错,最后选了10000端口就没事了。另外远程访问是https的,访问后输入设置的口令即可登录。当然,由于在远程访问启动和本地启动由于用的是不同端口,所以本机两种方式都可使用,不会相互影响。
参考资料:
5、Data Science in a Box using IPython: Installing IPython notebook (2/4)
转载请注明:jinglingshu的博客 » IPython notebook搭建