新项目:Python2还是Python3?

2024-05-23 21:18:50 发布

您现在位置:Python中文网/ 问答频道 /正文

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

它将包括一个沉重的图形用户界面,处理大量数据的复杂科学算法。我至少需要Numpy,Scipy,PyQT4,PyOpenGL,h5py,可选的Matplotlib。它将于2013年首次发布,并在未来几年内进行更新和扩展。

它将被那些不一定有计算机科学背景的科学家用于各种各样的计算机(Linux、Windows、Mac…)。有些机器可能是旧的。

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

如果我选择Python2.x,那么在不久的将来,如果2.x分支被弃用,我可能需要将软件移植到Python3.x(什么时候会出现这种情况?)。

什么是最好的选择?


Tags: 数据numpy算法软件windows系统分支开源
3条回答

我同意列文的观点。

有了这些需求,我还不会冒险从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版本而不可能破坏系统并非易事。

Python3。(这个问题的答案变了!)

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

原因是Python3(现在是3.6)每年都会有一个新版本。它也已经稳定了很多年(在它的第十个发布年!)。相比之下,Python2(仍然是2.7)在过去几年几乎没有变化,并且将继续停滞不前。

有关详细信息: https://wiki.python.org/moin/Python2orPython3/

更新我的原始答案是在2012年给出的。然而,多年后的今天,答案应该而且必须是Python 3。


这个wiki正好讨论了您的问题:Should I use Python 2 or Python 3 for my development activity?

这是一个很大的主观部分,这个问题取决于你的具体情况和制约因素。

但是,如果您不能确定您需要的所有第三方库都将与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

相关问题 更多 >