新项目:Python 2还是Python 3?

时间:2012-08-13 16:54:20

标签: python python-3.x

我正在用Python开始一个新的开源软件,我想知道我是否应该使用Python 2.x或Python 3.x.

它将包含繁重的GUI,处理大量数据的复杂科学算法。我至少需要Numpy,Scipy,PyQT4,PyOpenGL,h5py,optionaly Matplotlib。它应首先在2013年发布,并在未来几年内进行更新和扩展。

它将被不具备计算机科学背景的科学家用于各种计算机(Linux,Windows,Mac ......)。有些机器可能很旧。

如果我选择Python 3.x,我担心软件和第三方库的安装可能会更复杂,特别是在已安装Python 2.x的旧系统上。如果Python和外部库的RPM类包(或Windows安装程序)在大多数系统上都可用,那将更好,因此不需要编译所有内容。另外,我不知道3.x分支是否足够成熟。

如果我选择Python 2.x,我可能需要在不久的将来将软件移植到Python 3.x,如果2.x分支被弃用(何时会发生?)。

什么是最佳选择?

3 个答案:

答案 0 :(得分:15)

此维基解决了您的问题:Should I use Python 2 or Python 3 for my development activity?

这是这个问题的一个非常大的主观部分,它完全取决于你的具体情况和约束。

然而,IMO,如果您不能确定您需要的所有第三方库都可以使用Python v3.x我会坚持使用Python 2.x但是尝试编写代码尽可能与Python 3.x兼容(例如,print()等),这样如果您需要或想要迁移到v3,您的工作将不会那么具有挑战性。当然,moving from version 2 to 3上有文档和工具。这是porting v2 code to v3

在您无法控制或无法安装较新版本的Python或自定义第三方软件/库安装的系统中尤其如此。

鉴于您的软件将在各种系统(Linux,Windows,Mac ......)和许多不同用户上运行,我仍然认为v2现在更像是一个共同点。

因此,短注意事项摘要:使用版本2.x但是为v3.x准备了代码

最后,如果您将此搜索字符串“[python] version 3或2”放入SO搜索框,您会发现一些related posts

答案 1 :(得分:7)

Python 3.(这个问题的答案已经改变了!)

Python 2适用于遗留项目。新项目应该倾向于Python 3。

原因是Python 3(现在是3.6)每年都会大致发布一个新版本。它也已稳定多年(已发布第十个年度!)。相比之下,Python 2(仍为2.7)在过去几年中变化不大,并将继续停滞不前。

了解更多信息: https://wiki.python.org/moin/Python2orPython3/

答案 2 :(得分:2)

我同意Levon。

根据这些要求,我不会冒险从Python3开始,但你应该尽可能多地考虑Python3的变化来编写你的代码。

请参阅此问题Writing Python 2.7 code that is as close to Python 3.x syntax as possible,因为它可能会帮助您使用一些导入和标准,以便您的代码尽可能面向未来。

此外,如果您在各种系统中运行,则需要在应用程序中分发捆绑的python版本,或者信任用户的安装。大多数操作系统(非Windows)安装了2.x风格的Python,非技术用户升级到3.x并不容易破坏系统。