Help us understand the problem. What is going on with this article?

pipでUnicodeDecodeErrorが発生(Windows環境)

More than 3 years have passed since last update.

Windowsでpipを使ってPyYAMLをインストールしたらUnicodeDecodeErrorが発生してインストールできなかったのでその解決方法です。

環境

Windows 7 Professional SP1 64bit
Python 3.6.1 (64bit)
pip 9.0.1

エラー内容

PyYAMLをインストールしようとするとUnicodeDecodeErrorが発生してしまう・・・。

>pip install PyYAML
Collecting PyYAML
  Using cached PyYAML-3.12.tar.gz
Installing collected packages: PyYAML
  Running setup.py install for PyYAML ... error
Exception:
Traceback (most recent call last):
  File "c:\python36\lib\site-packages\pip\compat\__init__.py", line 73, in console_to_str
    return s.decode(sys.__stdout__.encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 80: invalid start byte

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\python36\lib\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
  File "c:\python36\lib\site-packages\pip\commands\install.py", line 342, in run
    prefix=options.prefix_path,
  File "c:\python36\lib\site-packages\pip\req\req_set.py", line 784, in install
    **kwargs
  File "c:\python36\lib\site-packages\pip\req\req_install.py", line 878, in install
    spinner=spinner,
  File "c:\python36\lib\site-packages\pip\utils\__init__.py", line 676, in call_subprocess
    line = console_to_str(proc.stdout.readline())
  File "c:\python36\lib\site-packages\pip\compat\__init__.py", line 75, in console_to_str
    return s.decode('utf_8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 80: invalid start byte

解決方法

コマンドプロンプトの文字コードを「UTF-8」にすることで解決しました。

1)コマンドプロンプトの文字コードを確認する。

>chcp
現在のコード ページ: 932

chcpコマンドで「932」と表示されたら文字コードは「ShiftJIS」になっています。

2)コマンドプロンプトの文字コードを変更する

chcpコマンドで「65001」を指定すると文字コードを「UTF-8」に変更できます。

>chcp 65001
Active code page: 65001

3)PyYAMLインストール

PyYAMLが正常にインストールできました。

>pip install PyYAML
Collecting PyYAML
  Using cached PyYAML-3.12.tar.gz
Installing collected packages: PyYAML
  Running setup.py install for PyYAML ... done
Successfully installed PyYAML-3.12

追記

mstranslatorパッケージのインストールでもUnicodeDecodeErrorが発生しました。
http://qiita.com/akabei/items/2356bb1ac282f6dd2a45

こちらは本記事の方法では解決しなかったので、以下の記事を参考に解決しました。

WindowsでのPython外部モジュール導入のはまりどころ
http://qiita.com/yukinoi/items/1fe023408d3e684da983

WindowsでPythonの開発をすると文字コードの問題がわりとありますね・・・。

akabei
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away