【问题标题】: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 中正常工作吗?

【问题讨论】:

    标签: 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 全局变量没有冲突时才需要。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-01-15
          • 1970-01-01
          • 1970-01-01
          • 2022-01-21
          • 2018-12-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多