1.2. 我应该选择哪一个 python 解释器(3 vs. 2)? | 基础信息 |《python 最佳实践指南 2018 2018》| python 技术论坛-380玩彩网官网入口

未匹配的标注

python的状态(版本 3 和版本 2)

选择 python 解释器时,总会出现一个令人窘迫的问题:“我应该选择python 2 还是 python 3”? 答案比人们想象的要复杂的多。

大致的基本情况如下:

  1. 今天大多数生产应用程序都在使用 python 2.7。
  2. python 3 已经可以在今天的应用程序上生产部署。
  3. python 2.7 只会在 2020 年之前获得必要的安全更新[[6]]()。
  4. python 包含了 python 3 和 python 2。

建议

注意:使用  python 3  比 python 2 受青睐。如果直到现在你仍然在产品中使用 python 2 的话,可以考虑一下升级你的产品和基础设施。如果你使用的是 python 3,那么,恭喜 —— 你是个有优秀品位的人。 —— kenneth reitz

我开门见山:

  • 在新的 python 应用中使用 python 3。
  • 如果你第一次学习 python,熟悉下 python 2.7 会很有帮助,但还是没有学 python 3 的帮助大。
  • 两个都学。它们都是 "python" 。
  • 现存的软件大多数都依赖于 python 2.7。
  • 如果你在写一个新的 python 库,最好同时支持 python 2 和 3 。 对于一个你希望被广泛支持的新库,只支持 python 3 其实是一个政治声明,它会挑拨许多你的用户。这其实也不是什么问题 —— 因为慢慢的,在接下来的三年里,情况会变得没那么糟糕。

那么考虑使用 3 么?

如果你正在选择一个 python 解释器使用,由于每个版本会带来新特性和改进的标准库模块,还有安全和漏洞修复,我推荐你使用最新的 python 3.x。

举一些只使用 python 2 的理由,例如先前存在的代码库,一个 python 2 独有的库,简单/熟悉,或者你对它喜爱有加并且深受它启发。这些都没有什么坏处。

查看  来看看是否有你所依赖的软件会阻止你采用 python 3。

有时候有可能需要你 。编写软件的种类决定了这一过程从繁琐到困难;另外如果你是初学者可以把这点先放一边,你有其他更重要的事情需要操心哈。还有注意 python 2.6 即将走向尽头,将会被开发者弃用,所以除非因为报酬,要不然你不用写出兼容 2.6 的代码。

实现

当人们谈及 python  时,他们通常指的是这门语言以及它的 cpython 实现。 python 实质上是一种语言规范,它可以用不同的方式来实现。

cpython

 是 python 实现的标准,使用 c 语言编写。它将 python 代码编译为中间字节码,然后使用一个虚拟机去解释该字节码。 cpython 提供了对 python 包和 c 扩展模块的最高级别的兼容性。

如果你正在写开源的 python 代码,并且希望覆盖最广泛的受众,那么 cpython 是最好的选择。如果要使用依赖于 c 扩展的函数,那么 cpython 是你唯一的选择。

python 语言的所有版本都是用 c 实现的,因为 cpython 是实现的标准。

pypy

是一个用 rpython 实现的 python 解释器, rpython 是 python 语言的受限静态类型子集。该解释器的特性是拥有一个即时(jit)编译器以及支持多种后端(c,cli,jvm)。

pypy 的目标是在提高性能的同时,对 cpython 实现标准提供最大的兼容性。

假如你正在搜寻提升你 python 代码性能的法门,那么 pypy 值得一试。 在一套基准测试中,它目前 。

pypy 支持 python 2.7。pypy3  beta 版的目标是 python 3。

jython

 是 python 的一种实现,它将 python 代码编译成 java 字节码,然后在 jvm(java 虚拟机)中运行。此外,它还能像使用 python 模块一样引入并使用任何 java 类。

如果你需要与现存的 java 库进行交互,或者有其他必要的理由来写运行在 jvm 上的 python 代码,那么 jython 是最佳选择。

jython 目前支持 python 2.7。 

ironpython

 是 python 的 .net 框架实现。它能同时使用 python 和 .net 框架的库,还能把 python 代码暴露给 .net 框架里的其他语言。

 直接把 ironpython 整合进了 visual studio 开发环境,使得其成为 windows 开发者的理想选择。

ironpython 支持 python 2.7。 

pythonnet

 是一个为 python 本地安装和 .net 公共语言运行库(clr)提供无缝整合的软件包。这与 ironpython(见上方)采用的方式恰恰相反,与其说是竞争,不如说是补充。

pythonnet 在如 os x 和 linux 等非 windows 操作系统上启用本地 python 安装的时候,需要结合 mono 才能在 .net 框架里使用。它能毫无冲突的运行在包括 ironpython 里。

pythonnet 支持从 python 2.6 到 python 3.5。  

本文章首发在 380玩彩网官网入口 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 cc 协议,如果我们的工作有侵犯到您的权益,请及时联系380玩彩网官网入口。

原文地址:https://learnku.com/docs/python-guide/20...

译文地址:https://learnku.com/docs/python-guide/20...

上一篇 下一篇
讨论数量: 0



暂无话题~
网站地图