Git for WindowsでPythonがうまく動かない場合の対処法

More than 3 years have passed since last update.

Git for Windowsが2系に上がってから、付属のGit Bashでpythonなどの対話モードで扱うコマンドがうまく動かなくなりました。

これはGit Bashに使われているMinTTYの既知の不具合(というか仕様?)らしく、対話モードを伴うコマンドはwinptyを使えということのようです。つまり、Git Bash上で以下のようにpythonを起動すれば正常に動作します。

winpty python

いちいちwinptyつけないといけないのか、めんどくさい、という方は<Git installed folder>\etc\profile.d\aliases.shを修正することでも対応できます。for name in ...の所に、winpty経由にしたいコマンドを追加すればOKです。


aliases.sh

    for name in node ipython php php5 psql python2.7 python

do
alias $name="winpty $name.exe"
done

そもそもなぜこうしないのか?については何か理由があるよう・・・ですが、読んでもいまいちわかりませんでした(MSys2のPythonかどうか見分けないといけないから、でも見分ける方法はある、みたいな感じになっていて謎)。心配な場合はipythonの方が2.6.3からは正式に入っているので、対話モードにしたい場合はipythonの方を使うという手もあります(こちらの方が機能的にリッチでもあるので)。

参考