1.1 Python版本

你很可能会问的第一个问题就是:“我的软件应该支持Python的哪些版本?”这是一个好问题,因为每个Python新版本都会在引入新功能的同时弃用一些老的功能。而且,Python 2.x和Python 3.x之间有着巨大的不同,这两个分支之间的剧烈变化导致很难使代码同时兼容它们。本书后面章节会进一步讨论,而且当刚刚开始一个新项目时很难说哪个版本更合适。

 
  • 2.5及更老的版本目前基本已经废弃了,所以不需要再去支持它们。如果实在想支持这些更老的版本,要知道再让程序支持Python 3.x会更加困难。如果你确实有可能会遇到一些安装了Python 2.5的老系统,那真没什么好办法。

    广告:个人专属 VPN,独立 IP,流量大,速度快,连接稳定,多机房切换,每月最低仅 10 美元

  • 2.6版本在某些比较老的操作系统上仍然在用,如Red Hat企业版Linux(Red Hat Enterprise Linux)。同时支持Python 2.6版本和更新的版本并不太难,但是,如果你认为自己的程序不太可能会在2.6版本上运行,那就没必要强迫自己支持它。

  • 2.7版本目前是也将仍然是Python 2.x的最后一个版本。将其作为主要版本或主要版本之一来支持是正确的选择,因为目前仍然有很多软件、库和开发人员在使用它。Python 2.7将被继续支持到2020年左右,所以它很可能不会很快消失。

  • 3.0、3.1和3.2版本在发布后都被快速地更替,并没有被广泛采用。如果你的代码已经支持了2.7版本,那么再支持这几个版本的意义并不大。

  • 3.3和3.4版本都是Python 3最近发行的两个版本,也是应该重点支持的版本。Python 3.3和3.4代表着这门语言的未来,所以除非正专注于兼容老的版本,否则都应该先确保代码能够运行在这两个最新的版本上。

总之,在确实有需要的情况下支持2.6版本(或者想自我挑战),必须支持2.7版本,如果需要保证软件在可预见的未来也能运行,就需要也支持3.3及更高的版本。忽略那些更老的Python版本基本没什么问题,尽管同时支持所有这些版本是有可能的:CherryPy项目(http://cherrypy.org)支持Python 2.3及所有后续版本(http://docs.cherrypy.org/stable/intro/install.html)。

编写同时支持Python 2.7和3.3版本的程序的技术将在第13章介绍。某些技术在后续的示例代码中也会涉及,所有本书中的示例代码都同时支持这两个主要版本。