Windows 用の Python 2.7.6 に setuptools 2.0.1 を設置できなかった話
情報処理技術者向けの話題。
とある事情で Windows 8.1 Pro に Python 2.7.6 (32bit版) を設置しまして、そこに setuptools 2.0.1 も載っけようとしたら躓きました。
以下、私の見立て。
場当たり的な解法
%PYTHONPATH%\lib\mimetypes.py
の 250行目にある except UnicodeEncodeError:
を except (UnicodeEncodeError, UnicodeDecodeError):
に置き換える。
原因
Issue15207の処置に誤りがある。
Issue9291: mimetypes initialization fails on Windows because of non-Latin characters in registry で議論中。
発生条件
下記のすべてが揃ったとき。Python 2.7.4 でも Python 3.3.3 でも発生しない。
- Windows 版 Python 2.7.6 をクリーンインストール
- setuptools 2.0.1 用の ez_setup.py をコマンドラインから実行
- レジストリのHKEY_CLASSES_ROOT 以下に非ASCII文字のキーがある
あまり騒がれてない理由
- Python 2.7.x 同士で上書き設置ができるので誰も問題に気づかない?
- setuptools は最近 2.0 が出て大きく構造が変わったので誰も試してない?
- Windows で Python を使っている人が少ない?
という覚書。