2016-02-19 15 views
9

Ho appena installato python su Windows 10 e sto cercando di aggiornare pip.Errore durante l'aggiornamento di pip: UnicodeDecodeError: il codec 'utf-8' non può decodificare il byte

mio nome utente di Windows ha charecters ebraico ...

quando provo a correre:

python -m pip install --upgrade pip 

ottengo questo errore:

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. 

sto geussing questo ha a che fare con il mio nome utente Windows ebraico, è corretto?

Posso aggiornare pip senza aprire un nuovo utente Windows?

+0

Si prega di cambiare il titolo, ad es. ** pip --upgrade lancia "UnicodeDecodeError" ** ma tutto è migliore di quello attuale. Altrimenti domanda interessante ... – gboffi

risposta

7

Sembra un bug in pip in cui si presume che i suoi metadati siano memorizzati come UTF-8. Invece, il tuo nome utente sembra codificato come "windows-1255".

si potrebbe provare la seguente:

  1. Backup C:\Users\עדי\AppData\Local\Programs\Python\Python35-32\lib\site-packages\pip\_vendor\pkg_resources\__init__.py
  2. Goto line: 1616
  3. Change utf-8-mbcs.
  4. Aggiornamento di ripetizione
+1

Il problema è che la funzione distlib ['_csv_open'] (https://bitbucket.org/pypa/distlib/src/a87d1b99aca107bd4cad881bc0d6c31bc2ae7cd9/distlib/util.py?at=default&fileviewer=file-view- default # util.py-1424) ha scritto il 'RECORD' dei file installati usando la codifica locale predefinita. Non fare mai affidamento su questo, specialmente su Windows, dal momento che la localizzazione ANSI è quasi inutile. Sono stupito che i PEP 376 e 427 non abbiano nulla da dire sull'applicazione di UTF-8 per i contenuti di questo file. – eryksun

+1

Mi raccomando di convertire 'site-packages \ pip-7.1.2.dist-info \ RECORD' in UTF-8, cioè leggerlo come' 'cp1255'' e scriverlo come '' utf-8''. – eryksun

+0

Quale riga deve essere cambiata? Purtroppo questa risposta è obsoleta per Python36-32. – Moberg

Problemi correlati