Python 3移植工作流程?

时间:2008-12-22 02:18:23

标签: python python-3.x porting

我有一个小项目,我想尝试移植到Python 3 - 我该怎么做呢?

我已经使用python2.6 -3(主要是删除.has_key()次调用)使代码运行而没有警告,但我不确定使用2to3工具的最佳方法。

  

使用2to3工具将此源代码转换为3.0语法。不要手动编辑输出!

运行2to3 something.py会输出一个差异,这对它自己没用。使用--write标志覆盖something.py并创建备份..看起来我必须这样做..

2to3 something.py
python3.0 something.py
mv something.py.bak something.py
vim something.py
# repeat

..这有点像回合 - 理想情况下我可以做点像......

mv something.py py2.6_something.py # once

2to3 py2.6_something.py --write-file something.py
vim py2.6_something.py
# repeat

2 个答案:

答案 0 :(得分:5)

啊哈,您可以将2to3输出传递给patch命令,该命令可以将修改后的文件写入新文件:

mv something.py py2.6_something.py
2to3 py2.6_something.py | patch -o something.py

答案 1 :(得分:0)

2.x应该是活动开发的代码库,因此2to3应该真正在分支或临时目录中运行。我不确定你为什么要在同一目录中放置2.x和3.x版本。 distutils有一个build_2to3脚本,在3.0安装时运行2to3。