Python和IPython有什么区别?

253

Python和IPython之间的区别是什么?

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

我知道IPython应该是Python的交互式shell,但这就是全部吗?是否有一种名为IPython的语言?如果我在IPython下编写某些内容,它是否可以在Python中运行,反之亦然?如果存在差异,如何知道它们是什么?Python使用的所有包是否都可以直接在IPython中使用?

7个回答

171

IPython 是使用Python构建的交互式shell。

来自项目网站:

IPython 提供了丰富的工具包,帮助您充分利用Python,包括:

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

请注意,前两行告诉您它可以帮助您充分利用Python。因此,您不需要更改代码,IPython shell会像普通的Python shell一样运行您的Python代码,只是多了更多的功能。

我建议阅读IPython教程,以了解在使用IPython时您可以获得哪些功能。


13
因此,您不需要更改您的代码,IPython shell会像普通的Python shell一样运行您的Python代码。谢谢,这就是我需要了解的全部内容。 - Asdfsdjlka Asdfsdjlka
你能对比一下ipython和python的执行速度吗?我指的是纯ipython,不涉及浏览器的ipython notebook。 - Jason
2
@Jason:这是完全相同的评估循环。在表示层中可能会有一些开销(解析ipython命令,漂亮地打印表达式输出),但这都是恒定的成本。因此,基本上几乎没有区别。 - Martijn Pieters

28

IPython是一个强大的交互式Python解释器,相较于IDLE和标准解释器更为交互。

要获取标准Python解释器,您可以键入python,然后会得到>>>提示符,从那里开始工作。

要获取IPython解释器,您需要首先安装它。 pip install ipython。 您键入ipython,将得到In [1]: 作为提示符,下一个命令则为In [2]:。 您可以调用history来检查以前的命令列表,并写入%recall 1来调用该命令。

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

您可以像图中所示一样使用[Tab]进行自动完成。

ipython REPL screenshot: showing cell numbers, tab autocompletion


26

IPython基本上是“推荐的”Python shell,提供额外的功能。没有名为IPython的语言。


IPython只是REPL吗? - Mr. Suryaa Jha
@Mr.SuryaaJha 这是一个REPL,但同时也有标准的Python REPL(当您在shell中输入python时所得到的)。 - BallpointBen
@BallpointBen 那么它们之间有什么区别,或者IPython的优势是什么? - luizfls
1
@luizfls ipython 具有语法高亮、一些“魔法”功能(如计时函数)和更智能的自动完成等其他功能。我专门使用它来代替标准的 Python REPL。 - BallpointBen

18
即使在查看了这个帖子之后,我仍然认为ipython是python shell的同义词,换句话说,在命令行上输入python会将其置于ipython模式下。
事实上,正如上面所提到的,它是一个非常酷的交互式shell(命令行程序),可从iPython.org安装或直接运行。
pip install ipython

或者更加全面的:

pip install ipython[notebook]

从命令行执行。


1
好观点,@Roadowl。我猜说“交互式 shell”有点多余了。 - MikeiLL
@Roadowl:(一年后,但仍然……)任何以非交互方式运行脚本的shell怎么样?也许一个简单的例子:$ sh -c 'foobar=3.14159'……或者我误解了你的评论。 - Cbhihe

8
Python和IPython之间的差异很少,只是在语法方面有一些解释上的不同,正如@Ryan Chase所提到的那些例子。但是Python的真正特色即使在IPython中也得以保留。
IPython最好的部分是IPython笔记本。您可以把所有的工作放在一个笔记本里,比如脚本、图像文件等。而Python则只能将这些脚本放在一个文件中并执行它们。
一开始,您需要了解的是IPython是为了支持富媒体和Python脚本在单个集成容器中而开发的。

8
与Python相比,IPython(Fernando Perez于2001年创建)可以做到Python所能做的一切。IPython提供了额外的功能,如制表符补全、测试、调试、系统调用等等。您可以将IPython视为Python语言的强大接口。
您可以使用pip安装IPython - pip install ipython 您可以在终端窗口中键入ipython来运行IPython。

2

根据我的经验,我发现在IPython中运行的一些命令在基本的Python中无法运行。例如,pwdls在基本的Python中单独使用是不起作用的。但是,如果在前面加上%,它们将能够工作,如:%pwd%ls

此外,在IPython中,您可以像这样运行cd命令:cd C:\Users\...即使在前面加上%,在基本的Python中似乎也无法工作。


4
在Python中,我使用import os; os.system('pwd')这个方法来执行此操作。 - All Іѕ Vаиітy
3
所有以 % 开头的命令都是 IPython 命令,不能在普通的 Python 交互会话中使用。这包括 %pwd%ls。当您的当前会话中没有与 Python 全局变量冲突时,% 前缀是可选的,但建议添加。请注意,这些命令需要在 IPython 中运行。 - Martijn Pieters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接