新项目:Python 2还是Python 3?

Cyr*_*ant 23 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分支被弃用(何时会发生?).

什么是最好的选择?

Lev*_*von 14

这个wiki正好讨论了你的问题:我应该使用Python 2还是Python 3进行开发活动?

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

IMO,但是,如果你不能确定你需要将与所有第三方库的Python 3.x版我会坚持使用Python 2.x的,但尝试写代码是与Python 3.x作为兼容尽可能多的可能(例如,print()等)如果您需要或想要迁移到v3,您的工作将不会那么具有挑战性.当然还有从第2版到第3版的文档和工具.这就是将v2代码移植到v3.

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

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

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

最后,如果您将此搜索字符串"[python] version 3或2"放入SO搜索框,您将找到许多相关帖子:


Rob*_*ino 7

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

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

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

有关更多信息:https: //wiki.python.org/moin/Python2orPython3/