迁移 Python 2 to 3 的经验帖

查看原文

本文介绍一个团队将二十多万行的代码库升级到 Python 3 的经验帖。

  • Python2 → Six → Python3。2to3 这个库会导致代码坏掉。用 six 写一些兼容两个版本的代码会方便很多。
  • Python-modernize 把 py2 仓库转成 six-compatible 的仓库。
  • 依赖不太支持 Python3 的,上游不搞,就自己 fork 修一下先支持。
  • StringIO.StringIO 在 Python3 中需要思考是要用 io.StringIO, io.BytesIO 还是 six.StringIO。
  • 看上去 Python 3 的支持迟早要做,早晚的问题。