参考 http://hyry.dip.jp/tech/book/page/scipynew/ipython.html
IPython-最佳Python交互环境
一直以来IPython被当作Python自带的命令行的加强版使用,它提供了代码高亮提示、自动完成、以及众多的魔法(Magic)命令。然而近年来IPython发生了脱胎换骨的变化,除了原有的控制台命令行之外,还添加了:
- QtConsole: 使用Qt界面库开发的控制台,可编辑多行程序,嵌入显示图像。
- Notebook:使用浏览器做界面的交互环境,可将文本、公式、图像等众多内容与代码完美地组织成一篇可运行的文档。本书就是使用IPythonNotebook编写的。
- Parallel:新版的IPython引入了运算核心(Kernel)的功能,所有的计算在IPythonKernel进程中运行,进程之间采用ZeroMQ进行消息传输。可在多台计算机上运行众多Kernel进程,然后通过命令行、QtConsole或者Notebook将计算任务提交到Kernel进程中运行,从而实现并行运算。
IPython 以及 pylab 模式
参考 http://liam0205.me/2014/09/11/matplotlib-tutorial-zh-cn/
IPython 是 Python 的一个增强版本。它在下列方面有所增强:命名输入输出、使用系统命令(shell commands)、排错(debug)能力。我们在命令行终端给 IPython 加上参数 -pylab
(0.12 以后的版本是 --pylab
)之后,就可以像 Matlab 或者 Mathematica 那样以交互的方式绘图。
pylab
pylab 是 matplotlib 面向对象绘图库的一个接口。它的语法和 Matlab 十分相近。也就是说,它主要的绘图命令和 Matlab 对应的命令有相似的参数。
Pylab和Pyplot是matplotlib的模块。pylab更适合交互。
Qt console
参考
https://qtconsole.readthedocs.io/en/latest/
https://ipython.org/ipython-doc/3/interactive/qtconsole.html
是一个非常轻量级的应用程序,很大程度上感觉像一个终端,但提供了一些只有在GUI可能的增强,如行内figure,正确的多行编辑语法高亮,图形调用提示等等。 Qt console可以使用任何Jupyter内核。
由于Qt console尝试像终端一样的行为,默认情况下它立即执行完成的单行输入。 如果要强制多行输入,请在第一行结束处按Ctrl-Enter,而不是Enter,它将打开一个新行进行输入。 在多行块中的任何点,您可以使用Shift-Enter强制其执行(而不必到底部)。
ipython qtconsole --pylab inline --style monokai
黑背景交互画图
python foo.py 直接运行foo.py
python -m foo.py 以模块运行foo.py