如果我要使用Python启动一个开源项目,我应该使用哪个版本来确保绝大多数用户可以在他们的系统上使用它?
我是那种迅速跳到下一个版本的人(我会在Python 3发布时做的)但是如果他们当前的版本似乎工作得很好,许多人可能会更保守。什么版本可以达到最佳点,但仍然允许我享受最新和最酷的语言增强?
答案 0 :(得分:6)
由于python处于向python 3的过渡阶段,具有向后兼容性,我认为仅使用python 3并不是一个好主意。基于time line,在10月2.6 / 3.0之后,将会有至少一个或两个以后的2.x系列版本。
除了在目标平台上没有python 3之外,还需要一些时间,直到重要的外部python库将在python 3上移植和使用。
因此,马修建议保持2.4 / 2.5并将transition计划保持为python 3是一个可靠的选择。
答案 1 :(得分:4)
我有一段时间没见过安装量低于2.3的系统。对于我现在使用的大多数操作系统,默认情况下大多安装2.4+。 2.3仅适用于较旧的Solaris机器。 Linux发行版往往有2.4+,OS X也是如此。
IIRC,2.4有很多功能2.5,但只能用于from __future__ import *
答案 2 :(得分:1)
您可以在每台计算机上使用不同版本的python。
编写新内容,我不会使用比python2.5更少的内容。你可以在股票debian stable上做apt-get install python2.5
。
对于Windows,不要担心它。安装python2.5 msi非常容易。
如果用户无法做到这一点,你可以用py2exe(如此简单)部署一个可执行文件并使用inno setup(再次简单)构建一个安装程序,然后它就像一个标准的Windows应用程序,并将使用它自己的python dlls,所以不需要安装python。
就像彼得所说:记住过渡到3.0,但还没有建立在它上面。
答案 3 :(得分:1)
Python 2.3或2.2,如果没有添加的许多模块(例如datetime,csv,logging,optparse,zipimport),可以使用SSL,并且愿意为True / False添加样板。< / p>
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。
答案 4 :(得分:0)
如果该项目将成为主流且将在Linux上运行,那么唯一明智的选择是2.4 - 只是因为在Enterprise Linux上安装其他任何其他东西是一件痛苦的事。
在任何情况下,任何现代操作系统都可以拥有2.4或更新版本。
答案 5 :(得分:0)
您应该使用 Python 2.7 ,这是Python 2的最终主要版本。
Python 3.x目前对第三方库的支持有限,默认情况下通常不会安装。所以你正在看2.x系列。
Python 2.7基本上完全向后兼容早期的2.x.此外,它可以给出关于在Python 3中不起作用的事情的弃用警告。(特别是,它将支付维护单元测试,并且对于Unicode-与字节串相关是迂腐的。)警告将强制您编写好的代码,自动2to3
工具将能够转换为Python 3。
Guido van Rossum officially recommends maintaining a single Python 2 code-base,并使用2to3和单元测试来生成Python 2和3的兼容版本。(自编写PEP 3000以来,Python 2.6已被2.7取代。)