2008-12-22 71 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。