2016-02-19 16 views
9

Windows 10にPythonをインストールしましたが、私はpipをアップグレードしようとしています。アップグレード中にエラーが発生しました:UnicodeDecodeError: 'utf-8'コーデックでバイトをデコードできません

私のWindowsユーザー名は、ヘブライ語charectersを持っている私が実行しようとすると...

は:

python -m pip install --upgrade pip 

私はこのエラーを取得する:

Collecting pip 
Using cached pip-8.0.2-py2.py3-none-any.whl 
Installing collected packages: pip 
    Found existing installation: pip 7.1.2 
Exception: 
Traceback (most recent call last): 
    File "C:\Users\עדי\AppData\Local\Programs\Python\Python35-32\lib\site-packages\pip\basecommand.py", line 211, in main 
    status = self.run(options, args) 
    File "C:\Users\עדי\AppData\Local\Programs\Python\Python35-32\lib\site-packages\pip\commands\install.py", line 311, in run 
    root=options.root_path, 
    File "C:\Users\עדי\AppData\Local\Programs\Python\Python35-32\lib\site-packages\pip\req\req_set.py", line 640, in install 
    requirement.uninstall(auto_confirm=True) 
    File "C:\Users\עדי\AppData\Local\Programs\Python\Python35-32\lib\site-packages\pip\req\req_install.py", line 673, in uninstall 
    for path in pip.wheel.uninstallation_paths(dist): 
    File "C:\Users\עדי\AppData\Local\Programs\Python\Python35-32\lib\site-packages\pip\wheel.py", line 512, in unique 
    for item in fn(*args, **kw): 
    File "C:\Users\עדי\AppData\Local\Programs\Python\Python35-32\lib\site-packages\pip\wheel.py", line 531, in uninstallation_paths 
    r = csv.reader(FakeFile(dist.get_metadata_lines('RECORD'))) 
    File "C:\Users\עדי\AppData\Local\Programs\Python\Python35-32\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 1619, in get_metadata_lines 
    return yield_lines(self.get_metadata(name)) 
    File "C:\Users\עדי\AppData\Local\Programs\Python\Python35-32\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 1616, in get_metadata 
    return self._get(self._fn(self.egg_info, name)).decode("utf-8") 
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf2 in position 22365: invalid continuation byte 
You are using pip version 7.1.2, however version 8.0.2 is available. 
You should consider upgrading via the 'python -m pip install --upgrade pip' command. 

私はこれをgeussingよ私のヘブライ語のWindowsユーザー名と関係がある、それは正しいですか?

新しいWindowsユーザーを開かずにpipをアップグレードできますか?

+0

をアップグレード例えば、あなたのタイトルを変更してください** pip --upgradeは "UnicodeDecodeError" **をスローしますが、何も現在のものより優れています。そうでなければ興味深い質問... – gboffi

答えて

7

これは、そのメタデータがUTF-8として格納されていると仮定しているpipのバグのようです。 代わりに、ユーザー名が "windows-1255"としてエンコードされているようです。

次の操作を試みることができる:

  1. バックアップC:\Users\עדי\AppData\Local\Programs\Python\Python35-32\lib\site-packages\pip\_vendor\pkg_resources\__init__.py
  2. 後藤ライン:mbcsから1616
  3. 変更utf-8
  4. 再実行
+1

問題は、distlib関数['_csv_open'](https://bitbucket.org/pypa/distlib/src/a87d1b99aca107bd4cad881bc0d6c31bc2ae7cd9/distlib/util.py?at=default&fileviewer=file-view-デフォルトの#util.py-1424)は、デフォルトのロケールエンコーディングを使用してインストールされたファイルの 'RECORD'を書き込みました。 ANSIロケールはまったく役に立たないので、特にWindowsではこれに依存しないでください。私はPEP 376と427がこのファイルの内容に対してUTF-8を強制することについて何も言わないことに驚いています。 – eryksun

+1

'site-packages \ pip-7.1.2.dist-info \ RECORD'をUTF-8に変換することをお勧めします。つまり' 'cp1255 ''として読み込み、' 'utf-8 ''として書き戻します。 – eryksun

+0

どの行を変更する必要がありますか?この回答は、残念ながらPython36-32では時代遅れです。 – Moberg

関連する問題