2008-12-22 67 views
5

我有一个小项目,我想尝试移植到Python 3 - 我该如何解决这个问题?Python 3移植工作流程?

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

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

运行2to3 something.py输出一个diff,它本身没有用。使用--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 

回答

5

啊哈,你可以管的2to3的输出到patch命令,可在修改后的文件写入到一个新的文件:

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

使用cp而不是mv来使其工作。 – nosklo 2008-12-23 10:53:09

+0

@nosklo:没有。补丁读取差异输出2to3 – Yktula 2011-08-22 11:58:21

0

2.x的应该是你主动DEVELOPME的代码库nt,所以2to3应该真的在分支或临时目录中运行。我不确定你为什么希望将2.x和3.x版本放在同一个目录中。 distutils有一个build_2to3脚本,可以在3.0版本上运行2to3。