【解決】pipでERROR: Command “python setup.py egg_info” failed with error code 1が出たときの対処方法

プログラミング,python

pythonを使っていて、pipでつまづく場面が多いなぁと思っていたこの頃。

ERROR: Complete output from command python setup.py egg_info:
    ERROR: Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\〇〇\AppData\Local\Temp\pip-install-fwwxzkq2\pyknp\setup.py", line 16, in <module>
        long_description = f.read()
    UnicodeDecodeError: 'cp932' codec can't decode byte 0x87 in position 115: illegal multibyte sequence
    ----------------------------------------
ERROR: Command "python setup.py egg_info" failed with error code 1 in C:\Users\〇〇\AppData\Local\Temp\pip-install-fwwxzkq2\pyknp\

Windows10でpythonを触っている人の中には同じようなエラーに苦しめられている人もいると思いました。

ググると、pipをアップデートしろ、やセットアップツールをアップデートしろということが書いてある記事が多かった印象です。

pip install --upgrade pip setuptools
conda update pip setuptools

これらを試しても解決に至らず・・・。

結果的に以下のことを試したら解決しました。

解決方法

コントロールパネルから地域を選択します。

管理のタブから、システムロケールの変更を選択します。

ベータ:ワールドワイド言語サポートでUnicode UTF-8を使用にチェックを入れます。

チェックをいれてOKを押すと、パソコンを再起動します。

その後、pipをすると問題なくエラーはなくなりました。

原因

同じegg_infoのエラーでも、この対処方法で解決させられるものと、そうでないものがあります。今回の方法で解決させられる可能性があるのは、以下のエラーがあるかどうかです。

UnicodeDecodeError: 'cp932' codec can't decode byte 0x87 in position 115: illegal multibyte sequence

cp932とあるので、要するに文字コード関連で怒られているようです。

chcpでコマンドプロンプトの文字コードを変更できますが、私の場合それではエラーを回避することはできませんでした、

今回設定を変更したことにより、文字コード関連のエラーがなくなるようです。

そもそもwindowsだけがshift-jisをデフォルトにしている現状を鑑みても、はやくデフォルトでUTF-8をサポートするようにしてほしいなと思う次第です。

設定の部分にベータとあるように、この機能はあくまでベータ版です。

この設定を変えたことにより、ほかのソフトの思わぬ不具合をもたらすかもしれません。

必要なライブラリがpipできたら設定を元のに戻すのもいいと思います。

あくまで自己責任の範疇でお願いいたします。

(私はいったんUTF-8をデフォルトにしたままにしてみようと思います。)

以上です

追記

UTF-8モードのままにするとコマンドプロンプトで文字化けが発生しました。

これはコマンドプロンプトのフォントを変えることで対処可能です。

MSゴシックに変更すると、日本語が表示されるようになると思います。