Python 和 IPython 有啥区别?

Posted

技术标签:

【中文标题】Python 和 IPython 有啥区别?【英文标题】:What is the difference between Python and IPython?Python 和 IPython 有什么区别? 【发布时间】:2012-09-04 10:15:39 【问题描述】:

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

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

我知道 IPython 应该是 Python 的交互式 shell,但仅此而已吗?或者有没有一种叫做 IPython 的语言?如果我在 IPython 下编写一些东西,它会在 Python 中运行吗,反之亦然?如果有差异,我怎么知道它们是什么? Python 使用的所有包都可以在 IPython 中正常工作吗?

【问题讨论】:

【参考方案1】:

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

来自项目网站:

IPython 提供了一个丰富的工具包来帮助您充分利用 Python,其中:

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

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

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

【讨论】:

Thus, you don't need to alter your code, the IPython shell runs your python code just like the normal python shell does 谢谢。这就是我需要知道的全部内容。 能否给一些关于ipython vs python的执行速度的cmets?我的意思是纯 ipython,而不是涉及浏览器的 ipython notebook。 @Jason:这是完全相同的评估循环。表示层可能会有一些开销(解析 ipython 命令,漂亮地打印表达式输出),但这都是恒定的成本。所以基本上,非常非常小的差异。【参考方案2】:

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

【讨论】:

IPython 只是 REPL 吗?? @Mr.SuryaaJha 这是一个 REPL,但也只有标准的 Python REPL(在 shell 中键入 python 时会得到什么)。 @BallpointBen 那么它们之间有什么区别,还是IPython的优势? @luizfls ipython 具有语法高亮、一些“魔术”之类的计时功能,以及更智能的自动完成功能,以及其他功能。我专门在标准 python REPL 上使用它。【参考方案3】:

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

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

要获得 IPython 解释器,您需要先安装它。 pip install ipython。 你输入ipython,你得到In [1]:作为提示,你得到In [2]:作为下一个命令。你可以调用history查看之前的命令列表,写%recall 1调用命令。

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

您可以使用[Tab] 自动完成,如图所示。

【讨论】:

【参考方案4】:

即使看了这个帖子,我还以为 ipython 是 python shell 的同义词,换句话说,在命令行输入 python 会进入 ipython 模式。

实际上,正如上面提到的,一个非常酷的交互式shell(命令行程序),可以从iPython.org 或简单地运行来安装

pip install ipython

或更广泛的:

pip install ipython[notebook]

从命令行。

【讨论】:

好点,@Roadowl 我想说“交互式外壳”有点多余,不是吗。 @Roadowl:(一年后,但仍然......)以非交互方式运行脚本的任何 shell 怎么样?也许是一个简单的例子:$ sh -c 'foobar=3.14159' ... 或者我误解了你的评论。【参考方案5】:

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

您可以通过在终端窗口中输入 ipython 来运行 Ipython

【讨论】:

【参考方案7】:

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

另外,在 IPython 中,您可以像这样运行 cd 命令:cd C:\Users\... 这似乎在基本 python 中不起作用,即使以 % 开头也是如此。

【讨论】:

import os; os.system('pwd') 是我在 Python 中的做法。 所有% 命令都是 ipython 命令,在常规 Python 交互会话中不起作用。这包括%pwd%ls% 前缀是可选的,只有在当前会话中与 Python 全局变量没有冲突时才需要。

以上是关于Python 和 IPython 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

python2和python有啥区别

Python IDLE与python有啥区别

在 iPy Notebook 中运行 unittest 示例时出现 AttributeError

jupyter 和 ipython的区别

ipython与python的区别

改为使用 IPython 和 Spyder 复制 jupyter HTML 输出