使用哪个版本的 Python 才能获得最大兼容性
-
09-06-2019 - |
题
如果我要使用 Python 启动一个开源项目,我应该使用什么版本来确保绝大多数用户可以在他们的系统上使用它?
我是那种会快速跳到下一个版本的人(当 Python 3 发布时我会这样做),但如果他们当前的版本似乎运行良好,很多人可能会更加保守。哪个版本既能达到最佳效果,又能让我享受最新、最酷的语言增强功能?
其他提示
我已经有一段时间没有见过安装低于2.3的系统了。我现在使用的大多数操作系统默认安装的是 2.4+。2.3 仅适用于较旧的 Solaris 计算机。Linux 发行版往往有 2.4+,OS X 也是如此。
IIRC,2.4 具有 2.5 的许多功能,但仅可用于
from __future__ import *
您可以在每台机器上使用不同版本的 python。
编写新的代码时,我不会使用低于 python2.5 的任何东西。你可以做 apt-get install python2.5
现货 debian 稳定版。
对于 Windows,不必担心。安装python2.5 msi非常容易。
如果用户不愿意这样做,您可以使用 py2exe 部署一个可执行文件(非常简单),并使用 inno setup 构建一个安装程序(同样简单),那么它将像标准 Windows 应用程序一样运行,并使用自己的 python dll ,所以不需要安装python。
就像彼得说的:请记住向 3.0 的过渡,但不要在此基础上进行构建。
Python 2.3 或 2.2(如果您可以在没有添加的许多模块的情况下生活)(例如datetime、csv、logging、optparse、zipimport),不使用 SSL,并且愿意添加 True/False 的样板。
2.4 添加了装饰器。生成器表达式、reverse()、sorted() 以及 subprocess 和decimal 模块。尽管这些都很好,但是如果没有它们,编写 Python 代码也很容易(假设您的项目不会大量使用它们)。
2.5 添加了 with,相对导入,更好的 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 - 只是因为在企业 Linux 上默认安装其他任何东西是一件痛苦的事情。
无论如何,任何 现代的 操作系统将/可以有 2.4 或更高版本。
你应该使用 Python 2.7, ,Python 2 的最终主要版本。
Python 3.x 目前对第三方库的支持有限,并且通常不会默认安装。所以您正在查看 2.x 系列。
Python 2.7 本质上与早期的 2.xs 完全向后兼容。此外,它还可以针对在 Python 3 中不起作用的内容发出弃用警告。(特别是,维护单元测试以及迂腐地对待 Unicode 与 Unicode 是值得的。字节字符串。)警告将迫使您编写良好的代码,以便自动化 2to3
工具将能够转换为 Python 3。
吉多·范罗苏姆 官方建议维护单个 Python 2 代码库, ,并使用 2to3 和单元测试来生成 Python 2 和 3 的兼容版本。(自 PEP 3000 编写以来,Python 2.6 已被 2.7 取代。)