将Web应用程序从Python 2迁移到3 - 翻转开关或逐渐迁移?

时间:2014-09-30 22:49:16

标签: python python-3.x migration

我需要在明年左右将~20k LOC Python 2.7网络应用程序迁移到Python 3.4。我是唯一一个运行它的人,它在Debian 7上,我完全可以控制环境和迁移时间,而且我计划在Debian上切换到Python 3 8(这将是它终于出来后的几个月)。假设所有依赖项都支持Python 3和一个不错的测试套件,我似乎有两个选择:

  1. 之后使用2to3和手动清理将代码转换为Python 3,并在一切看起来都很好的时候翻转开关。
  2. 使用future / six将代码转换为Python 2和3兼容,一旦所有内容看起来都会翻转开关,然后删除Python 2支持。
  3. 由于除了迁移之外我还有其他一百万个职责,我知道一个单独的Python 3分支(2to3选项)将闲置数周,而Python 2分支接收数百个需要被带来的紧急提交。第二条路线看起来更具吸引力,因为我可以逐步升级一个代码库以兼容Python 3,但是在两个主要版本的Python中保持一切运行可能还需要做更多工作。

    我想知道哪条路线不那么痛苦。从运行2到3到翻转开关有多少工作,以及维护Python 2/3兼容代码库需要多少(额外)工作?我可以阅读任何回顾吗?

0 个答案:

没有答案