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 中运行。例如,pwd
和 ls
在基础 Python 中不能单独工作。但是,如果以 %
开头,例如:%pwd
和 %ls
,它们将起作用。
另外,在 IPython 中,您可以像这样运行 cd 命令:cd C:\Users\
... 这似乎在基本 python 中不起作用,即使以 %
开头也是如此。
【讨论】:
import os; os.system('pwd')
是我在 Python 中的做法。
所有%
命令都是 ipython 命令,在常规 Python 交互会话中不起作用。这包括%pwd
和%ls
。 %
前缀是可选的,只有在当前会话中与 Python 全局变量没有冲突时才需要。以上是关于Python 和 IPython 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章