我们应该使用python 2.6还是2.7或3.x?[关闭]


25

我正在使用的python版本是2.6,并且有2.7和3.x。通常我将python用于一些琐碎的程序/片段。我意识到2.x和3.x之间有一些主要区别。我真的很想知道,如果我要使用python创建更大的项目,应该使用哪个版本的python?

我应该升级到2.7,还是升级到3.x或继续使用2.6?

该决定应基于以下条款:

  1. 互联网上作为社区的用户数。更多的用户意味着更多的开源软件包和他们的帮助。

  2. 功能性。

  3. 官方开发团队的支持。

  4. 与现有模块/软件包的兼容性。

谢谢!


5
有人可以指出python 3.x所做的任何有益更改吗?
lamwaiman1988

1
您提到您知道与现有模块的兼容性是一个问题,但是您没有告诉我们您的代码所依赖的现有模块。这个问题几乎无法回答。
Wooble

2
题外话; 建议和大猩猩与鲨鱼在一个问题中哇!

3
这个问题及其答案仅在很小的时间范围内有用。随着3.x变得更加成熟,从现在开始一年后,现在有意义的事情可能就没有意义了。
布莱恩·奥克利

注意(a)这个问题在2014年仍然有意义(例如RobotFramework不适用于Python 3),并且(b)关闭此问题使此页面保持陈旧,因为-尽管它在Google搜索结果中排名很高-新的答案无法发布。
鲍勃·斯坦

Answers:


27

我建议自己使用Python 2.7。它是Python 2.x系列中的最新版本。大多数Python模块都可与Python 2.x一起使用。可以尝试迁移到Python 3,但是Python 3的任何模块都是针对2和3编写的。请记住不要使用Python 3中不可用的旧功能,这样您就可以将代码2to3转换为Python 3。使它在Python 3上运行。

如果您使用Python 3,那么您将是早期采用者之一,您可能不得不告诉其他人下载Python 3(很多计算机都只安装Python 2)。另一方面,新功能仅会出现在Python 3中。Python2是永久维护的。因此,我不建议十年后仍使用Python 2。

如果要关注Python软件包及其与Python 3的兼容性,可以关注以下站点:http : //python3wos.appspot.com/


django不支持3.x?因此,熟悉django的用户无法使用3.x吗?
lamwaiman1988

嘿,通常在发布新版本时,这意味着它比以前的版本更好。为何python在2.x系列和3.x系列中发布?它们之间的实际区别是什么?
HOT

4
Python 3对语言进行了一些有益的更改,但它们与Python 2中的某些功能不向后兼容。因此,删除了某些内容,并添加了一些内容(删除的内容使它们不兼容)。
jsternberg 2011年

+1表示2.7,最佳兼容性比率(至少对于我使用的库而言),直到3才更广泛使用
-Wildpeak

@Ashinkn可以在docs.python.org/3.0/whatsnew/3.0.html中找到更改。破坏兼容性的主要更改是从使用Unicode(而不是ASCII)作为默认字符串类型的切换。人们在使用字符串作为byte []之前使用了新的bytearray类型。另外,任何明确定义为unicode的2x字符串都需要更改为常规字符串。
Evan Plaice

19

我的观点是,我们需要让人们开始使用Python 3,并且如果存在与Python 3不兼容的库,我们需要开始使情况并非如此。

Python 3是该语言的未来,我们使用它编写的代码越多越好。


我们需要的是一个与两个版本的python兼容并且可以智能地解析它们的单个解释器。也就是说,所述解释器会将python2和python3都编译为相同的字节码,以便它们兼容,从而可以将python3与python2库一起使用。如果C,C ++和Java可以做到,那么Python也可以。
Braden Best

4

Django现在“实验性地”支持Python 3.2+,如您在此处的文章所述。

鉴于此,并且Python 3.x是该语言的未来,我想说Python 3现在是最好的。


2

对于每个项目,检查项目所需的所有库是否已获得3.x python支持,然后使用python 3.x,因为它是将来的版本,并且是最后的正式稳定版本。

另外,还可以使用需要使用的任何库兼容性。


2

使用Python 2.7还是Python 3并不重要,如果您不使用Python 2.7中的旧功能,则只需将代码2to3使其在Python 3上运行即可。


0

我以前在同一条船上,这就是我发现的东西。可以使用MacPorts并排安装Python 2.6、2.7和3.2,并且可以轻松切换。(我是Mac用户)。寻找适合您平台的Macports替代产品。


0

直到在3.x内以固有方式开发桥以允许透明使用2.7软件包,否则此举充满了危险,因为该语言实际上就是它所做出的贡献的全部。相比之下,形式上的考虑和纯度可忽略不计。由于纯粹的顽固固执和无视用户群,这种透明的桥梁不太可能发生。


这样的透明桥梁是无法实现的。2to3和6个软件包提供了足够的桥接,但远非透明。
马丁·彼得斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.