Python—是否应该直接在Python3.x中启动一个新项目?

Python—是否应该直接在Python3.x中启动一个新项目?,python,Python,对于一个长期(几年)的项目,您可以推荐什么Python版本?应该使用2.6+还是3.x已经稳定了?(仅需要标准库) 更新:根据下面的答案,Python3.x仍然存在严重的bug。另请参阅。如果您现在正在启动项目,并且您想要使用的所有第三方库都已移植到Python 3,并且您的目标操作系统(我实际上是指linux发行版)包了Python 3,那么请确定 继续,使用Python3。Python3没有问题,但是许多库还没有被移植。例如,来自: Python3支持不完整,仍处于开发阶段 和来自: 对Py

对于一个长期(几年)的项目,您可以推荐什么Python版本?应该使用2.6+还是3.x已经稳定了?(仅需要标准库)


更新:根据下面的答案,Python3.x仍然存在严重的bug。另请参阅。

如果您现在正在启动项目,并且您想要使用的所有第三方库都已移植到Python 3,并且您的目标操作系统(我实际上是指linux发行版)包了Python 3,那么请确定


继续,使用Python3。

Python3没有问题,但是许多库还没有被移植。例如,来自:

Python3支持不完整,仍处于开发阶段

和来自:

对Python3的支持已经计划好了,但还没有计划好


这一切都取决于第三方库对您的重要性,以及它们是否已被移植。

我认为这归结于您可以在多大程度上控制应用程序运行的环境。如果您正在生产一个软件,您的客户将在其中“安装”python来运行您的软件,那么您最好使用最新版本(Python3.x)。如果您的目标是现有的python安装,那么选择2.5或2.6兼容性将是最好的,因为它们更广泛


Python3.x是稳定的。这不是问题所在。它的问题是兼容性。如果你有能力使用最新和最好的,那么你应该使用新版本。对于新项目,3.x将是显而易见的选择。

Python3的优点是来自Python2。但该计划必须符合某些标准

我认为目前最好的方法是编写Python2代码,并在Python3测试模式下进行测试(运行
python-3program.py
)。通过这种方式,您现在不必担心缺少库,只要有意义,您就可以将程序转换为Python3。

,我只想指出还有一个问题。我从未使用过这两种包装,但我听说3to2比2to3更宽容


编辑:只是想强调一下其他人的建议:如果你选择使用这些转换器中的一个来发布你的2.6或3.0版本的软件,你可能会希望有一个可靠的测试系统(unittest、doctest等),具有良好的测试覆盖率,可以在晚上安然入睡

这就是为什么要使用Python3.x:

Python2.x:

>>>True = False
>>>True
False
Python3.x:

>>> True = False
  File "<stdin>", line 1
SyntaxError: assignment to keyword
>True=False
文件“”,第1行
SyntaxError:分配给关键字
资料来源:

偏见:但是很多包还没有准备好Python 3


这是(a)不正确的()和(b)对初学者来说并不重要。

问题总是与第三方库有关。“Python3.x仍然存在严重的bug”?在标记为“关键”的32名学生中,大多数似乎是“脆弱的”。一个内存泄漏似乎实际上是“严重的”。我认为“关键错误”可能是言过其实了。@psihodelia,如果你的意思是,如果没有GIL阻止CPython在不使用多处理器包的情况下充分利用多核处理器,答案是否定的,Python 3将无法解决这个问题。这意味着,即使在N年内我们将有多个CPU,一次只能有一个线程在执行操作。对吗?太糟糕了…别忘了多处理软件包@Skilldrick,如果我还记得的话,Python3.0发行版确实出了一些问题,文件I/O的性能非常糟糕。如果是这样,它是否在3.1中得到了完全修复,或者与Python2.x相比,仍然存在一些相当严重的性能问题?