WindowsでPythonがLookupError: unknown encoding: cp65001

  • 9
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Windows7のコマンドプロンプトでpythonが以下のようなエラーをはいた

LookupError: unknown encoding: cp65001

これはコマンドプロンプトの文字コードであるcp65001がpythonにとって未知であるため。

自前プログラムの場合の対応

自前のプログラムだったら

import sys
import codecs
def cp65001(name):
    if name.lower() == 'cp65001':
        return codecs.lookup('utf-8')
codecs.register(cp65001)

という風に書いて、cp65001がutf-8だと定義してあげればよい。

pipなどのpythonツールの場合の対応

上記の方法はpipなどのpythonのツールだと使えない。
例えば、pip installなどでこれが出るとだめ。

そう言う場合は環境変数を

PYTHONIOENCODING=utf-8

としてあげればよい。