Python2で書かれたソースを3に変換する

Webに乗っているサンプルソースなどでPythonを学ぶときに、初心者が躓くポイントの一つとして、バージョンの違いで動かない場合。
超単純なHello Worldすら動かない。

今からやる人は大体Python3を使うと思いますが、世にあるコードはまだ2系のものが多いと思いますので、初心者が躓く最初のポイントになるかと思いますが、実は2から3に変換してくれるコマンドがあります。

2to3コマンド

以下のコマンドで差分を出してくれます。
$ 2to3 hogehoge.py
ざっと見て問題なさそうでしたら、下記のコマンドでファイルを書き換えてくれます。
$ 2to3 -w hogehoge.py

なおLinux系やMacの場合はこれでよいのですが、Windowsの場合はコマンドが見つからないと出てしまいます。

python “(インストール先)\Python35\Tools\scripts\2to3.py” -w hoge.py

で、インストール先が良くわからないという場合はDOSプロンプトで”path”コマンドでパスが通ったディレクトリが表示されるので、それっぽいところを探してください。
ただ、いちいちソースファイルを指定して起動するのが面倒この上ないのでbatファイルを作って起動するようにしました。

2to3.bat

@echo off
python "C:\Program Files\Python35\Tools\scripts\2to3.py" %*

※フォルダ名は適当に書き換えてください。

これを適当なパスの通ったフォルダに入れておけば
$ 2to3.bat hogehoge.py
という感じで起動できます。

スポンサーリンク
タイトルとURLをコピーしました