使用哪个版本的Python以获得最大兼容性
如果要使用Python启动一个开源项目,应该使用哪个版本来确保绝大多数用户可以在其系统上使用它?
我是那种会迅速跳到下一个版本的人(当Python 3发行时我会做的),但是如果他们的当前版本似乎工作正常,许多人可能会更加保守。哪个版本会达到最佳效果,但仍然允许我享受最新和最酷的语言增强功能?
解决方案
回答
我已经有一段时间没有看到安装少于2.3的系统了。默认情况下,我现在使用的大多数OS默认都安装了2.4+。 2.3仅在较旧的Solaris计算机上。 Linux发行版趋向于2.4 +,OS X也是如此。
IIRC 2.4具有2.5的许多功能,但仅可用于
from __future__ import *
回答
由于python处于向python 3过渡的阶段,具有向后兼容的特性,所以我认为仅使用python 3并不是一个好主意。根据时间轴,10月2.6 / 3.0之后的2.x系列将至少发布一两个版本。
除了在目标平台上没有python 3之外,重要的外部python库要在python 3上移植和使用还需要一些时间。
因此,正如马修(Matthew)建议保持在2.4 / 2.5并牢记向python 3过渡的计划是一个不错的选择。
回答
我们可以在每台机器上使用不同版本的python。
编写新的代码,我不会使用python2.5以下的代码。我们可以在现有的debian稳定版上执行" apt-get install python2.5"。
对于Windows,不必担心。安装python2.5 msi非常容易。
如果用户不愿意这样做,则可以使用py2exe部署一个可执行文件(如此简单),并使用inno setup构建一个安装程序(同样简单),那么它的行为将类似于标准Windows应用程序,并且将使用其自己的python dll。 ,因此无需安装python。
就像Peter所说的那样:记住要过渡到3.0,但不要在此基础上建立。
回答
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.
回答
如果该项目将成为主流并且将在Linux上运行,那么明智的选择是2.4,因为在Enterprise Linuxes上默认安装其他任何东西都是很痛苦的。
在任何情况下,任何现代OS都将/可以具有2.4或者更高版本。