使用哪个版本的Python以获得最大兼容性

使用哪个版本的Python以获得最大兼容性

Which Version of Python to Use for Maximum Compatibility

如果我要使用Python启动一个开源项目,我应该使用哪个版本来确保绝大多数用户可以在其系统上使用它?

我是那种会迅速跳到下一个版本的人(当Python 3发行时我会做的),但是如果他们的当前版本似乎工作正常,许多人可能会更加保守。哪个版本会达到最佳效果,但仍然允许我享受最新,最酷的语言增强功能?


由于python处于向python 3过渡的阶段,具有向后兼容的特性,所以我认为仅使用python 3并不是一个好主意。根据时间轴,10月2.6 / 3.0之后的2.x系列至少会有一个或两个以下版本。

除了在目标平台上不提供python 3之外,要移植重要的外部python库并在python 3上可用还需要一些时间。

因此,正如马修(Matthew)建议保持在2.4 / 2.5并牢记向python 3过渡的计划是一个不错的选择。


一段时间以来,我还没有看到安装了2.3以下版本的系统。默认情况下,我现在使用的大多数OS默认都安装了2.4。 2.3仅在较旧的Solaris计算机上。 Linux发行版和OS X倾向于具有2.4。

IIRC 2.4具有很多2.5的功能,但仅可用于

1
from __future__ import *

Python 2.3或2.2,如果您可以不添加任何模块(例如datetime,csv,日志记录,optparse,zipimport),不使用SSL并愿意为True / False添加样板。铅>

2.4添加了装饰器。生成器表达式,reversed(),sorted()以及子进程和十进制模块。尽管它们都很不错,但是没有它们就可以编写Pythonic代码很容易(假设您的项目不会大量使用它们)。

2.5添加了相对导入,更好的64位支持和相当快的速度。您可以轻松地住所有这些人。

2.6尚未发布(尽管非常接近),因此尽管它可能吸引开发人员,但它并没有您想要的兼容性。

看看2.3、2.4、2.5和即将发布的2.6的发行说明(使用http://www.python.org/download/releases/2.Y/highlights/,其中" Y"是次要的版本)。

FWIW,对于SpamBayes,我们支持2.2及更高版本(2.2需要单独安装电子邮件软件包)。这并不过分,但添加2.3足够有用,而且2.3足够老,因此不久以后我们可能会放弃2.2。


您可以在每台计算机上使用不同版本的python。

编码新的东西,我不会使用python2.5以下的任何东西。您可以在股票debian稳定版上执行apt-get install python2.5

对于Windows,不必担心。安装python2.5 msi非常容易。

如果用户不愿意这样做,则可以使用py2exe部署可执行文件(非常简单),并使用inno setup构建安装程序(同样简单),那么它将像标准的Windows应用程序一样工作,并会使用其拥有自己的python dll,因此无需安装python。

就像彼得说的:记住要过渡到3.0,但不要在此基础上建立。


您应该使用Python 2.7,这是Python 2的最终主要版本。

Python 3.x当前具有有限的第三方库支持,并且默认情况下通常不安装。因此,您正在研究2.x系列。

Python 2.7本质上与早期的2.xs完全向后兼容。此外,它还可以针对在Python 3中无法使用的东西给出不赞成使用的警告。(特别是,它将维护单元测试,并对Unicode和字节字符串有一定的兴趣。)这些警告将迫使您执行以下操作:编写好的代码,自动化的2to3工具将能够将其转换为Python3。

Guido van Rossum正式建议维护单个Python 2代码库,并结合使用2to3和单元测试来生成适用于Python 2和3的兼容版本。(自编写PEP 3000以来,Python 2.6已被2.7取代。)


如果该项目将成为主流并且将在Linux上运行,那么明智的选择是2.4-仅仅是因为在Enterprise Linuxes上默认安装其他任何东西是很痛苦的。

在任何情况下,任何现代操作系统都将/可以具有2.4或更高版本。


推荐阅读