243

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

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

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

4

7 回答 7

166

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

来自项目网站:

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

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

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

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

于 2012-09-11T13:09:30.523 回答
24

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

于 2017-02-01T04:18:41.660 回答
23

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

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

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

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

如镜像所显示,您可以使用[Tab]自动完成。 在此处输入图像描述

于 2018-12-15T12:27:02.043 回答
18

即使在查看这个帖子之后,我也认为 ipython 是 python shell 的同义词,换句话说,在命令行输入 python 会使一个进入 ipython 模式。

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

pip install ipython

或更广泛的:

pip install ipython[notebook]

从命令行。

于 2014-06-19T18:13:12.543 回答
8

Python 和 IPython 之间几乎没有区别,但它们只是对少数语法的解释,例如 @Ryan Chase 提到的少数语法,但在内部,即使在 Ipython 中也保留了 Python 的真正风味。

IPython 最好的部分是 IPython 笔记本。你可以把你所有的工作都放在一个笔记本中,比如脚本、图像文件等。但是使用基础 Python,你只能将脚本放在一个文件中并执行它。

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

于 2016-06-14T07:06:32.377 回答
7

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

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

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

于 2016-10-24T22:53:11.960 回答
2

根据我的经验,我发现一些在 IPython 中运行的命令不能在基础 Python 中运行。例如,pwd不要ls在基础 Python 中单独工作。但是,如果以%诸如:%pwd%ls.

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

于 2015-12-12T18:59:08.290 回答