python教程—您打算如何处理到python3的迁移?-Python实用宝典

python教程—您打算如何处理到python3的迁移?

考虑到python 3即将发布,我确信这是大多数python开发人员都关心的一个主题。下面是一些让我们朝正确方向前进的问题:

考虑到python 3即将发布,我确信这是大多数python开发人员都关心的一个主题。下面是一些让我们朝正确方向前进的问题:

  1. 您是同时维护python2和python3版本,还是在完成后只维护python3版本?

    • 你已经开始工作了吗?或者你打算等到最终版本出来后再投入全部精力?

回答

这是Twisted的总体计划。我本来打算写这个博客,但后来我想:既然我可以得到,为什么还要写这个博客呢?

  1. ,等着别人来关心吧

    现在,还没有人拥有python3。在至少有一个实际用户站出来说“我需要Python 3.0支持”之前,我们不会花费太多精力,而且除了3.0看起来很漂亮之外,还有一个很好的理由。

  2. ,直到我们的依赖项迁移完毕。

    像Twisted这样的大型系统有许多依赖项。首先,我们的服务包括:

    • Zope Interface
    • < a href = " http://www.dlitz.net/software/pycrypto/ " rel = " noreferrer " > PyCrypto < / >
    • < a href = " https://launchpad.net/pyopenssl/ " rel = " noreferrer " > PyOpenSSL < / >
    • < a href = " http://sourceforge.net/projects/pywin32/ " rel = " noreferrer " > pywin32 < / >
    • PyGTK
    • < a href = " http://pyasn1.sourceforge.net/ " rel = " noreferrer " > pyasn1 < / >
    • < a href = " http://www.pangalactic.org/PyPAM/ " rel = " noreferrer " > PyPAM < / >
    • < a href = " http://gmpy.sourceforge.net/ " rel = " noreferrer " > gmpy < / >

    其中一些项目有它们自己的依赖关系数组,所以我们也必须等待它们。

  3. 坚强的>,等到有人关心到一定程度,才会伸出援手

    There are, charitably, 5 people who work on Twisted - and I say "charitably" because that's counting me, and I haven't committed in months. We have over 1000 open tickets right now, and it would be nice to actually fix some of those — fix bugs, add features, and generally make Twisted a better product in its own right — before spending time on getting it ported over to a substantially new version of the language.

    这可能包括< a href = " http://twistedmatrix.com/trac/wiki/TwistedSoftwareFoundation " rel = " noreferrer " >赞助商< / >关心足以支付我们去做,但我希望将会有大量的志愿者关心3.0支持,希望帮助推动社会前进。

  4. <强>听从圭多的建议。< /强>

    这意味着,我们将遵循过渡性发展指南圭多去年发布。首先进行单元测试,并在扭曲的代码基上运行 2to3转换工具

  5. 报告针对2to3工具的bug,并为其提供补丁文件

    当我们真正使用它的时候,我预计将来运行2to3会有很多问题。现在在Twisted上运行它需要非常长的时间,而且(上次检查是在很久以前)无法解析Twisted存储中的一些文件,因此生成的输出不会导入。我认为,在它真正为我们工作之前,必须有大量来自小型项目的成功案例,以及对该工具的大量改进。

    然而,Python开发团队在响应我们的bug报告方面非常有帮助,对这些问题的早期响应令人鼓舞,所以我希望所有这些问题都能及时得到解决。

  6. < >强保持2。x兼容数年。

    现在,Twisted支持python 2.3到2.5。目前,我们正在开发2.6支持(显然我们必须在3.0之前完成!)我们的计划是基于长期支持的版本Ubuntu - release 8.04,其中包括Python 2.5,将会支持到2013年。根据Guido的建议,为了支持3.0,我们将需要放弃对2.5的支持,但我希望我们能找到解决这个问题的方法(我们在版本兼容性方面很有创意)。

    因此,我们计划至少在2013年之前支持Python 2.5。两年后,Ubuntu将发布另一个长期支持的Ubuntu版本:如果他们仍然存在,并且按计划运行,那将是10.04。我个人猜测,这将与python2一起发布。x,也许是python 2.8,作为/usr/bin/python,因为发行版中包含了大量的python软件,更新它们需要很长时间。因此,从的五年时间,到2015年,我们可以开始考虑降低2。x的支持。

    在此期间,我们将继续遵循Guido关于迁移的建议:在我们的2上运行2到3。x代码基,然后修改2。保持它的测试在两个版本中都通过。

    The upshot of this is that Python 3.x will not be a source language for Twisted until well after my 35th birthday — it will be a target runtime (and a set of guidelines and restrictions) for my python 2.x code. I expect to be writing programs in Python 2.x for the next ten years or so.

这就是计划。我希望在一年左右的时间里,它最终看起来保守得可笑;的3。x转换非常简单,每个人都能快速升级。其他事情也可能发生:2。x和3。x分支可能会聚在一起,有人可能最终编写一个3to2,或者另一个运行时(想到PyPy)可能允许运行2。x和3。x代码直接在同一个过程中,使我们的转换过程更容易。

然而,目前,我们假设,在许多年内,我们将有一些人拥有他们正在维护的大型代码(或者编写新代码的人希望使用尚未迁移的其他),他们仍然希望在Twisted中使用新特性和bug修复。很快,我希望我们也会有希望在python3上使用Twisted的尖端用户。我想为所有这些人提供一个积极的经验,尽可能长。

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
0

发表评论