ipython notebook服务器的搭建
条评论ipython介绍和安装
ipython是一个很好用的python交互式shell,支持自动补全,语法高亮,代码调试,支持bash命令,在linux下使用的很是开心。本来像python这样的语言,很适合在shell中交互式编程,配合ipython来使用,很方便。
在Fedora下安装可以直接使用yum
1 | sudo dnf install ipython -y |
ipython安装成功后可以直接输入ipython来启动,当然功能实在太多,这里介绍几个比较常用的功能:
自动补全功能
自动补全和bash的补全一样也是使用tab。在ipython里面可以通过查看历史机制来把代码保存出来,
历史记录功能
输入hist可以快速查看那些输入的历史记录,输入hist -n可以去掉历史记录中的序号,方便保存代码。至于其他很多功能就不一一介绍了,有需要的可以从自行查找。
edit功能
在ipython中输入edit会根据环境变量$EDITOR调用相应的编辑器,默认使用vi(linux)或者记事本(windows)。
- edit (filename.py) 可以编辑当前的filename.py文件,如果文件不存在,则会新建一个新的文件,如果文件存在则会打开该文件,默认会编辑一个tmp下的临时文件,当你退出编辑器后会自动执行刚刚文件的内容。
- edit -x (filename.py) 跟上面的功能几乎一样,只不过当你退出后不执行文件内容。
- edit -p 编辑上一次的文件,编辑器退出时自动运行刚刚的文件内容。
run 一个文件
输入run filename.py 可以运行filename.py这个文件。
- run -n filename.py 运行filename.py但阻止__name__=”__main__“
- run -i filename.py 运行filename.py使其在当前的名字空间下运行而不是在一个新的名字空间中。
- run -p filename.py 运行filename.py并使用python的profiler模块分析源代码,使用该选项的代码不会运行在当前名字空间。
debugger接口
ipython中输入magic pdb可以查看相关的介绍信息。
宏
宏允许用户为一段代码定义一个名字,这样以后使用这个名字来运行这段代码,可以想象成是文本的替换,往往配合hist来使用
假设有一个历史记录如下:
1 | In [3]: hist |
这样就为第2行创建了一个宏,以后想输出L的内容时,可以直接输入
1 | In [5]: L.append(1) |
这是一个很强大的功能,但注意这里跟定义的函数完全不是一回事,不要搞混了。
ipython的功能还有很多,这里介绍几个常用的功能,如果还是不了解可以输入help来看看手册。
ipython notebook
其实这里重点是要介绍这里的,但想到了ipython的强大,忍不住把他的常用功能列了一下,下面开始正题:
ipython notebook做的真是不错,能够搭建一个服务器来远程进行编程,甚至有的人使用他来搭建博客,这里重点介绍一下他的服务器如何搭建。官方的doc在这里: http://ipython.org/ipython-doc/3/notebook/index.html
ipython notebook的安装和搭建
在Fedora 21上安装ipython notebook可以使用yum
1 | sudo yum install ipython-notebook python-setuptools python-matplotlib -y |
ipython notebook会使用mathjax在浏览器中显示latex的一些代码,如果能事先安装mathjax的话,ipython notebook就不需要联网了,所以我们选择安装mathjax。启动ipython,输入下面两行代码
1 | from IPython.external.mathjax import install_mathjax |
如果只是想本机使用可以直接输入ipython notebook,使用浏览器访问http://127.0.0.1:8888 就可以了,但为了能够将本机真正编程一个服务器,还需要继续。
其实ipython notebook可以理解成是某个服务器托管的一个网页,所以这里的服务器应该是可以用很多种的,官网的配置使用的nbserver,这里就介绍nbserver的配置
首先创建一个名为nbserver的配置文件:
1 | ipython profile create nbserver |
在配置nbserver的配置文件之前,我们还需要得到几个内容,登陆密码和私人证书
登陆密码可以使用ipython提供的一个passwd函数来计算得到
1 | IN [1]: from IPython.lib import passwd |
创建私人证书:
1 | openssl req -x509 -nodes -days 10000 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem |
这时候会有个输入信息的过程,直接跳过,生成的mycert.pem就是你的私人证书了,我把它放在/workspace/下/.config/ipython/preofile_nbserver 或者 ~/.ipython/preofile_nbserver下的ipython_notebook_config.py 默认内容全部注释掉了,我们不用管他,直接添加下面几句,根据自己的情况可以做一下调整
现在就可以去修改nbserver的配置文件了,配置文件是
1 | c = get_config() |
完成后,使用下面这句来运行服务器:
1 | ipython notebook --profile=nbserver |
用浏览器访问一下你的服务器吧,默认使用的https协议,所以输入网站的时候注意一下 https://ip_of_your_server:9999
如果不能访问,检查一下你的端口是不是被防火墙阻挡了,把iptables的对应端口打开一下
ipython notebook 的一些常用功能
ipython notebook的几个常用的功能在这里列一下,其他的很多功能还得多去看看手册
本地运行
在本地运行的ipython notebook默认生成的文件扩展名是ipynb格式,其实可以改成py格式,只需要在启动ipython notebook时加上–script的参数就可以
1 | ipython notebook --script |
执行一个代码
与ipython的shell形式不同的是在notebook中,代码是写在cell中的,你的回车并不能触发这一块代码的运行,输入shift+enter才能执行这段代码
pylab的模式
matplotlib生成的图片可以通过弹出一个新页面的形式来显示,也可以嵌入网页内显示:
1 | ipython notebook --pylab ## 默认显示,弹出一个新的页面 |
ipython的内容很多,另一个跟ipython结合很紧密的工具是matplotlib,有时间的时候也会记录一下。
本文标题:ipython notebook服务器的搭建
文章作者:throneclay
发布时间:2015-11-12
最后更新:2022-08-03
原始链接:http://blog.throneclay.top/2015/11/12/ipythonNotebookServer/
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!