Python3系として書いたソースコードを、何らかの要因で2系で使用したくなった時の修正方法。
特に企業で使用しているPythonのバージョンが2系で容易にアップデートが出来ない時などに使えると思います。
モジュール3to2を使用する
Pythonが提供するモジュール3to2を使用します。
ちなみに2to3というのもあります。(2系から3系への変換はこっちを使う)
インストールと使い方
基本的にpipでインストールするだけです。
$ pip install 3to2
$ 3to2 -w 変換したいファイル名(.py)
# *も使えるのでモジュール配下一括とかもできる
$ 3to2 -w module/*
これだけで変換されます。正規表現でのファイル指定も可能となってます。
-wオプションについて 変換したいファイル(.py)をバックアップとして、変換したいファイル.py(.bak)という名前で残しつつ、変換できる。
ちなみに、オプションなしで実行すると変換後のソースが標準出力(print)されるだけになります。
一度こちらで確認をするのも良いかもしれません。
使用例
簡単な使用例は以下のような感じです。
$ ls
app.py
$ 3to2 -w app.py
$ls
app.py app.py.bak
完全にこのままで動くわけではなく多少の手直しは必要ですが、たったこれだけで面倒な書き換えを9割方しなくて済みます。
そもそも2系の環境をアップデートするのが正しいのは間違いありません。
どうしても2系を使わないといけない!といった時に参考にしてみてください。