我有一个小项目,我想尝试移植到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
有帮助吗?

解决方案

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

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

其他提示

2.x的应该是你的积极发展的基本代码,所以2to3的真的应该在一个分支或临时目录中运行。我不知道为什么你会希望有2.x和3.x版本在同一目录躺在身边。的distutils具有build_2to3脚本将运行2to3的上一个3.0安装。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top