Python世界的新手。 " Python实现"之间有什么区别?与#34; Python发行版"与Python本身?例如:
有什么区别?我可以同时使用所有吗?这个术语并没有真正详细阐述。
答案 0 :(得分:10)
" Python本身"是一种柏拉图式的理想。粗略地说它是一个规范,虽然没有"真正的"规范,因为有一些其他语言,如C.语言的Python行为由python.org上提供的文档定义。任何能够完成文档说它应该做的事情都会计算出#34;就像是Python。
Python的实现是一个提供该行为的实际程序。最常见的是CPython,这是你从python.org下载的。其他实现在"替代品"你提到的页面是其他程序,也算作Python"因为它们提供了记录的行为(有时会有一些警告),但是它们是独立编写的,例如,可以在其他平台上运行,运行速度更快,运行速度更慢,在引擎盖下做不同的事情等等。
Python的发行版是一个包,它包含Python的实现以及一堆库或工具。理论上,Python的发行版可以使用任何实现,尽管我所知道的所有实现都使用CPython。从python.org下载也可以被认为是一个发行版(一个不包含任何"附加内容的最小发行版")。
你可以把它想象成某种物理机器,比如烤箱。 " Python本身"或者" Python语言"就像机器的作用一样:它会升温,你可以转动拨盘来设定温度等。你不能用这个描述做饭。你必须先建造一个真正的烤箱。 Python的实现就像你构建的实际烤箱;只要它做烤箱应该做的事情,它就是一个烤箱,但是可以有很多方法来制造一个能做正确事情的烤箱(燃木,燃气,太阳能等)。分配将是一个烤箱,与您可能经常想要使用的其他东西一起带来 - 就像一个设备齐全的厨房,包括锅,平底锅,锅铲和搅拌碗以及烤箱本身。 / p>
你确实可以同时使用这三种,在某种意义上你必须这样做。没有办法使用" Python语言"没有使用它的实现;这就像是说你想要开车"没有驾驶任何特定类型的汽车。同样,如果不将其作为分发的一部分,您就无法真正使用实现(至少如果您认为"裸" python.org下载也是分发)。
实际上,大多数使用Python实际用途的人都在使用CPython(事实上的标准实现),所以真正的选择是在不同的发行版中。其中,您主要根据您想要的附加物选择。您可以选择使用"裸"从python.org发布,然后自己安装软件包,或者如果你打算进行科学/分析计算,你可以选择其中一个分配给它的分发(例如,Anaconda或Canopy)。
答案 1 :(得分:2)
Python本身就是一种编程语言。它有各种实现,允许您运行其中编写的程序。为了给你一个更好的想法,msvc,clang,gcc是C的实现。这里有一些python实现:
分发是与某些包捆绑在一起的python实现。如果再一次,你不知道这个,只需使用vanilla python,即默认下载。
答案 2 :(得分:1)
当大多数人松散地谈论“Python本身”时,他们的意思是“基础Python系统” - 即。解释器和标准工具箱 - 与任何第三方工具箱不同。例如,您可能会说,“要运行我的基于Python的软件,您需要自己安装Python,以及来自numpy.org的第三方工具箱NumPy”。前者是获得“hello world”的常规最低要求,后者增加了更专业的功能。
“发行版”是您下载的“一堆文件”。特定的“Python发行版”可能只包含特定版本的“Python本身”(就像您从python.org获得的发行版)。或者它可能更具包容性:为了节省用户安装第三方依赖项的单独工作,许多人发布的“Python发行版”不仅仅包含基本系统。例如,他们可能会提供已经包含流行的第三方软件包(如NumPy和SciPy)的发行版(示例:WinPython,PortablePython,Enthought,Anaconda等的发行版)。
至于短语“Python实现”:正如其他回答者已经提到过的那样,通常用来强调特定的Python发行版在解释器被“编入引擎”的过程中与其他发行版不同的事实。官方python.org产品用C实现,因此是“CPython”。还有使用Java制作的Python实现。要将所有术语组合在一起,您可以下载PyPy发行版,这是一个用“Python本身”编写的Python实现; - )
答案 3 :(得分:0)
据我理解(以我的有限知识)。
答案 4 :(得分:0)
您在计算机上安装的文件集是发行版。
发布是实现的一个实例。实现的示例是CPython,PyPy,Twisted等。有关更多实现,请参阅http://wiki.python.org/moin/Pythonimplementations
Python本身就是这个实现和库的环境的名称。
答案 5 :(得分:0)
值得一提的是,尽管Python中的“发行版”通常是指可以下载和安装的Python语言版本和捆绑的模块,但在某些情况下,它也可以指代"Distribution Package"。