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

它将包括一个沉重的GUI,处理大量数据的复杂科学算法.我至少需要Numpy、Scipy、PyQT4、PyOpenGL、h5py、可选Matplotlib.它应该在2013年首次发布,并在future 几年进行更新和扩展.

它将被不一定具有计算机科学背景的科学家在各种计算机(Linux、Windows、Mac等)上使用.有些机器可能很旧.

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

如果我 Select Python 2.x、 我可能需要将软件移植到Python 3.如果2.x分支被弃用(什么时候会发生?).

最好的 Select 是什么?

推荐答案

Python 3. (The answer to this question has changed!)

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

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

有关更多信息:

Python-3.x相关问答推荐

如何获得大Pandas 的常见时间间隔

在Python代码中包含NAN值时,以两个矩阵计算RMSE

Pandas -我们如何在一行中应用多个要求

将列表转换为 pandas 数据框,其中列表包含字典

如何转置和 Pandas DataFrame 并命名新列?

使用 pandas 数据帧映射到中转( node )点的跨容量请求

Python defaultdict 在获取时返回 None,尽管使用默认值初始化

根据另一列值对多个数据框列进行分组

删除重复项,但将值相加为一

Await Future 来自 Executor:Future 不能在await表达式中使用

有没有更好的方法来判断一个数字是否是两个数字的范围

二进制文件的 Python 3 和 base64 编码

Python:如何在三个列表中找到共同值

tensorflow 中 numpy.newaxis 的替代方案是什么?

使用逗号时,除了处理程序中的语法无效

如何等待 create_task() 创建的任务完成?

Django Rest 框架 ListField 和 DictField

为什么异步库比这个 I/O 绑定操作的线程慢?

如何从Pandas 中的字符串中提取前8个字符

如何将python日志(log)级别名称转换为整数代码