&引用;Python实现“;vs.“;Python发行版“;与Python本身相比?

&引用;Python实现“;vs.“;Python发行版“;与Python本身相比?,python,terminology,Python,Terminology,Python世界的新成员。“Python实现”与“Python发行版”与Python本身之间的区别是什么?例如: 我可以从以下站点下载Python本身(Python 3.4.2) 或者有一个昵称为CPython的“实现”,我可以从 或者我可以使用来自的“分发” 有什么区别?我能同时使用所有的吗?这个术语并没有被详细阐述。Python本身就是一种编程语言。它有各种实现,允许您运行用它编写的程序。为了让您更好地了解,msvc、clang、gcc是C的实现。以下是一些python实现: CPyt

Python世界的新成员。“Python实现”与“Python发行版”与Python本身之间的区别是什么?例如:

  • 我可以从以下站点下载Python本身(Python 3.4.2)
  • 或者有一个昵称为CPython的“实现”,我可以从
  • 或者我可以使用来自的“分发”

有什么区别?我能同时使用所有的吗?这个术语并没有被详细阐述。

Python本身就是一种编程语言。它有各种实现,允许您运行用它编写的程序。为了让您更好地了解,msvc、clang、gcc是C的实现。以下是一些python实现:

  • CPython:这是默认值,如果您不知道应该使用什么
  • Jython:java实现,允许您使用JavaAPI
  • IronPython:net的实现,允许您使用.NETAPI
  • PyPy:JIT实现
发行版是与一些包捆绑在一起的python实现。如果你还是不知道这一点,那就使用vanilla python,也就是默认下载。

据我所知(以我有限的知识)

  • Python本身是开发团队提供的核心功能和模块的原始集合
  • 实现是经过显著修改的Python版本,通常以不同的方式编译
  • 发行版是常规的Python,附带一些您可以自己安装的附加模块
    • “Python本身”有点像柏拉图式的理想。粗略地说,它是一个规范,尽管没有像其他一些语言(如C语言)那样的“真正”规范。Python语言的行为由Python.org上的文档定义。任何按照文档中的说明进行的操作都将被视为Python

      Python的一个实现是提供该行为的实际程序。最常见的是CPython,这是您从python.org下载的内容。您提到的“备选方案”页面上的其他实现也是“算Python”的其他程序,因为它们提供了有文档记录的行为(有时有一些警告),但它们是独立编写的,例如,可以在其他平台上运行,运行得更快,运行得更慢,在后台以不同的方式做事,等等

      Python的发行版是一个包,包含Python的一个实现以及一组库或工具。理论上,Python发行版可以使用任何实现,尽管我所知道的所有实现都使用CPython。从python.org下载的内容也可以被视为一个发行版(一个不包含任何“额外内容”的最小发行版)

      你可以把它比作某种物理机器,比如烤箱。“Python本身”或“Python语言”就像是对机器工作的描述:它加热,你可以转动刻度盘来设定温度,等等。你不能用描述来烹饪任何东西;你必须先建造一个真正的烤箱。Python的实现就像您构建的实际烤箱;只要它做了烤箱应该做的事情,它就是一个烤箱,但是可以有很多方法来建造一个做正确事情的烤箱(木柴、燃气、太阳能等等)。分发的东西可能是一个烤箱,里面有其他你可能经常想使用的东西——比如一个设备齐全的厨房,包括锅、平底锅、抹刀、搅拌碗以及烤箱本身

      你确实可以同时使用这三个,从某种意义上说,你必须这样做。如果不使用Python语言的实现,就无法使用“Python语言”;这就像说你想“开一辆车”,而不是开任何一种特殊的车。同样,您不能真正使用一个实现而不把它作为一个分布的一部分(至少如果您认为“裸露的”Python .Org下载也是一个发行版的话)。
      实际上,大多数出于实际目的使用Python的人都在使用CPython(事实上的标准实现),因此真正的选择是在不同的发行版中进行。其中,你的选择主要是基于你想带什么额外的东西。您可以选择使用python.org上的“裸版”发行版,然后自己安装软件包,或者如果您计划进行科学/分析计算,您可以选择一个面向此的发行版(例如Anaconda或Canopy)。

      您在计算机上安装的文件集是一个发行版

      分发是实现的一个实例。实现的示例有CPython、PyPy、Twisted等。有关更多实现,请参阅


      Python本身就是这种实现和库环境的名称。

      当大多数人松散地谈论“Python本身”时,他们的意思是“一个基本的Python系统”——即解释器和标准工具箱,有别于任何第三方工具箱。例如,您可能会说,“要运行我的基于Python的软件,您需要安装Python本身,以及来自NumPy.org的第三方工具箱NumPy”。前者是到达“hello world”的常规最低要求,后者增加了更专业的功能

      “分发”是指“你下载的一堆文件”。一个特定的“Python发行版”可能只包含一个特定版本的“Python本身”(类似于从Python.org获得的发行版)。或者它可能更具包容性:为了让用户不必单独安装第三方依赖项,许多人发布了“Python发行版”,其中包含的不仅仅是基本系统。例如,他们可能提供的发行版已经包含了流行的第三方软件包,如NumPy和SciPy(例如:WinPython、PortablePython和Enh的发行版)