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 には、3.0 インストールで 2to3 を実行する build_2to3 スクリプトがあります。

于 2008-12-22T17:55:55.437 に答える