Python和IPython有什么区别?


220

Python和IPython之间到底有什么区别?

如果我用Python编写代码,它是否可以按原样在IPython中运行还是需要进行修改?

我知道IPython应该是Python的交互式外壳,但仅此而已?还是有一种叫做IPython的语言?如果我在IPython下编写某些内容,它将在Python中运行,反之亦然吗?如果存在差异,我怎么知道它们是什么?Python使用的所有软件包都可以像在IPython中那样工作吗?

Answers:


153

ipython 是使用python构建的交互式shell。

从项目网站:

IPython提供了丰富的工具包,可帮助您充分利用Python,并具有以下功能:

  • 强大的Python Shell(基于终端和Qt)。
  • 基于Web的笔记本,具有相同的核心功能,但支持代码,文本,数学表达式,内联图和其他富媒体。
  • 支持交互式数据可视化和GUI工具箱的使用。
  • 灵活,可嵌入的解释器,可加载到您自己的项目中。
  • 易于使用的高性能并行计算工具。

请注意,前两行告诉您它可以帮助您充分利用Python。因此,您不需要更改代码,IPython shell就像常规python shell一样运行python代码,只具有更多功能。

我建议阅读IPython教程,以了解使用IPython时获得的功能。


8
Thus, you don't need to alter your code, the IPython shell runs your python code just like the normal python shell does谢谢。这就是我所需要知道的。
Asdfsdjlka Asdfsdjlka 2012年

您能对ipython vs python的执行速度发表一些评论吗?我的意思是纯ipython,而不是涉及浏览器的ipython笔记本。
杰森

2
@Jason:这是完全相同的评估循环。表示层可能会有一些开销(解析ipython命令,漂亮地打印表达式输出),但这都是固定成本。所以基本上,几乎没有什么区别。
马丁·彼得斯


16

即使在查看了该线程之后,我仍然认为ipython是python shell的同义词,换句话说,在命令行中键入python会将其置于ipython模式。

实际上,如上所述,它实际上是一个非常酷的交互式外壳程序(命令行程序),可以从iPython.org安装或通过运行

pip install ipython

或更广泛的内容:

pip install ipython[notebook]

从命令行。


1
好点,@ Roadowl我想说“交互式外壳”有点多余,不是吗。
MikeiLL 2015年

@Roadowl :(一年后,但仍然...)任何以非交互方式运行脚本的shell怎么样?也许是一个简单的例子:$ sh -c 'foobar=3.14159'...或者我误解了您的评论。
Cbhihe

12

IPython是功能强大的交互式Python解释器,与标准解释器相比,它更具交互性。

要获取标准的Python解释器,请键入,python然后会>>>从您可以工作的地方获得提示。

要获取IPython解释器,您需要先安装它。pip install ipython。您键入ipython并得到In [1]:提示,然后In [2]:输入下一条命令。您可以调用history以检查以前的命令列表,并写回%recall 1以调用该命令。

即使您在Python中,也可以直接运行shell命令,例如!ping www.google.com。如果您之前使用过的话,它看起来就像是命令行的Jupiter笔记本。

您可以使用[Tab]自动完成,如图所示。 在此处输入图片说明


6

Python和IPython之间几乎没有区别,但是它们仅是对少量语法的解释,就像@Ryan Chase提到的语法一样,但是即使在Ipython中,Python的内在本质也得以保留。

IPython的最好部分是IPython笔记本。您可以将所有工作放入脚本,图像文件等笔记本中。但是使用基本Python,您只能将脚本制作在文件中并执行。

开始时,您需要了解IPython是为了在单个集成容器中支持富媒体和Python脚本而开发的。


6

与Python相比,IPython(由Fernando Perez在2001年创建)可以完成python可以做的所有事情。Ipython甚至提供了额外的功能,例如制表符完成,测试,调试,系统调用和许多其他功能。您可以将IPython视为Python语言的强大接口。

您可以使用pip 安装Ipython-pip install ipython

您可以通过在终端窗口中键入来运行Ipythonipython


2

根据我的经验,我发现某些在IPython中运行的命令不在基本Python中运行。例如,pwdls不要单独在基地的Python工作。但是,如果以%诸如:%pwd和开头,则它们将起作用%ls

另外,在IPython中,您可以运行cd命令,如下所示: cd C:\Users\ ...即使在前缀为a的%情况下,这在基本python中似乎也不起作用。


3
import os; os.system('pwd')这是我在Python中执行的方式。
所有的话2016年

2
所有%命令都是ipython命令,不能在常规的Python交互式会话中使用。其中包括%pwd%ls。该%前缀是可选的,并且仅在当前会话中与Python全局变量没有冲突时才需要。
马丁·彼得斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.