你应该使用哪个版本?
应该选择哪个版本主要取决于你要用它来做什么事情。
如果你恰好能用Python3.x来完成你的需求,那太好了!有一些微小的负面因素,比如轻微变差的库支持(见脚注1)和这样的事实–当前一些Linux发行版本和Mac系统仍然把Pyhon2.x作为默认版本,然而作为一个语言Python3.x已经完全成熟并且方便使用。
只要你的电脑安装了Python3.x(这应该很简单,因为阅读这篇文章的人只是为了开发可以供自己使用的东西或者自己可以控制的环境),并且你正在写一些东西,而且你知道这个东西不需要Python2.x模块,这是一个超赞的选择。此外,大部分Linux发行版本已经安装了Python3.x版本,而且几乎所有的版本都对终端用户提供支持。一个有点痛苦的例外情况是Linux Red Hat企业发行版直到第7个版本:Python3都没有被放入EPEL仓库中,而一些用户由于公司策略限制不被允许从插件位置安装任何东西 – 关于控制参见下面的备注。一些发行版本逐步停止使用Python2作为默认预装(见脚注2)。
特别说一下,教师在向编程新人介绍Python的时候应该考虑先教授Python3,然后再介绍Python2中不同点(如果有必要),因为Python3会摒弃很多奇怪的习惯,这些习惯可能不必要地让编程初学者从Python2开始学习。
然而,下面是一些关键的问题要求你使用Python2而不是Python3:
Python3已经广泛支持创建图形用户界面的应用,已把Tkinter纳入标准库。几乎从Python3发行之日起它就被PyQt所支持;2011年PySide增加对Python3的支持。GTK+ GUIs可以使用支持Python3的PyGObject来创建,并且是PyGtk的继任者。
很多其它重要包已经被移植到Python3,包括:
还有更多,以及更多
如果你想使用Python3,但是你因为一个依赖项而有所担心,那么先做一些调查是值得的。这是一项进展中的工作并且这个维基页面可能会是过期的(如果你发现了更新的资料请帮助更新)。此外,有大量通用子集同时被Python2.6+和Python3.3+所支持,大量现代化Python代码不需要大量修改应该就可以在Python3上运行,尤其是为web和GUI框架交互而写的代码–这些代码强制应用正确区分二进制数据和文本(可能需要six兼容模块的帮助来处理名称变化)。
即使Python官方文档和教程已经对Python3版本做了完全的更新,网上和参考手册上仍然有一些文档(包括样例)使用Python2,尽管一直以来越来越多的内容已经被更新。这些情况可能需要做一些调整来让代码能够在Python3上正常工作。
还有一些人只是不想使用Python3,这是他们的权利。然而,这些人毕竟是少数。
值得注意的是如果你希望使用一个替代的Python实现,比如IronPython, Jython 或者 Pyston(或者Python平台或者编译器实现的列表项上的一个),Python3的支持依然相对稀少。这个可能会对你造成影响如果你对选择一个这样的实现感兴趣,考虑到其它系统的集成或者性能原因。
脚注
未完待续。。。To be continued…
原文参考:
https://wiki.python.org/moin/Python2orPython3