5

我有一个小项目我想尝试移植到 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
4

2 回答 2

5

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

mv something.py py2.6_something.py
2to3 py2.6_something.py | patch -o something.py
于 2008-12-22T02:22:23.153 回答
0

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

于 2008-12-22T17:55:55.437 回答