你应该选择使用Python 2还是Python 3来进行开发?(二)

你应该使用哪个版本?

应该选择哪个版本主要取决于你要用它来做什么事情。

如果你恰好能用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兼容的版本,而且移植这个包是个不小的任务,你可能需要使用Python2来获得这个包的使用权限。

Python3已经广泛支持创建图形用户界面的应用,已把Tkinter纳入标准库。几乎从Python3发行之日起它就被PyQt所支持;2011年PySide增加对Python3的支持。GTK+ GUIs可以使用支持Python3的PyGObject来创建,并且是PyGtk的继任者。

很多其它重要包已经被移植到Python3,包括:

  • NumPy和Scipy(用于数字处理和科学计算)
  • Django, Flask, CherryPy 和 Pyramid (用于网站开发)
  • cx_Freeze (用于打包应用和依赖项)
  • py2exe (用于Windows用户打包应用)
  • OpenCV 3,(一个开源计算机视觉和机器学习的库)从版本3.0开始支持Python3
  • Requests(一个为人类所有的HTTP库)
  • lxml(一个强大的Python风格的XML处理库, 由libxml2/libxslt通过ElementTree组成 )
  • BeautifulSoup4(一个解析HTML和XML的屏幕抓取库)
  • 用于交互式计算的IPython/Jupyter 项目全面支持Python3
  • 还有更多,以及更多

    如果你想使用Python3,但是你因为一个依赖项而有所担心,那么先做一些调查是值得的。这是一项进展中的工作并且这个维基页面可能会是过期的(如果你发现了更新的资料请帮助更新)。此外,有大量通用子集同时被Python2.6+和Python3.3+所支持,大量现代化Python代码不需要大量修改应该就可以在Python3上运行,尤其是为web和GUI框架交互而写的代码–这些代码强制应用正确区分二进制数据和文本(可能需要six兼容模块的帮助来处理名称变化)。

即使Python官方文档和教程已经对Python3版本做了完全的更新,网上和参考手册上仍然有一些文档(包括样例)使用Python2,尽管一直以来越来越多的内容已经被更新。这些情况可能需要做一些调整来让代码能够在Python3上正常工作。

还有一些人只是不想使用Python3,这是他们的权利。然而,这些人毕竟是少数。

值得注意的是如果你希望使用一个替代的Python实现,比如IronPython, Jython 或者 Pyston(或者Python平台或者编译器实现的列表项上的一个),Python3的支持依然相对稀少。这个可能会对你造成影响如果你对选择一个这样的实现感兴趣,考虑到其它系统的集成或者性能原因。

脚注

  1. 仍然在维护中的包:https://python3wos.appspot.com
  2. Linux架构链接从python改为python3,而且Ubuntu和Fedora把Python 3切换为默认选项:
    https://wiki.ubuntu.com/Python/3
    https://fedoraproject.org/wiki/Changes/Python_3_as_Default

未完待续。。。To be continued…

原文参考:
https://wiki.python.org/moin/Python2orPython3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值