Пипс Python 2.7 UnicodeDecodeError

Я получил свежеустановленную Windows 7 x64 Professional с Python 2.7 и pip. Во время установки ошибок не было, но когда я пытаюсь pip install xlrd в CMD, я получил следующее:

C:\Users\Владислав>pip install xlrd

Downloading/unpacking xlrd  
Running setup.py
(path:c:\users\4918~1\appdata\local\temp\pip_build_┬ырфшёырт\xlrd\setup.py) egg_info for package xlrd

Cleaning up... Exception:
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\pip\basecommand.py", line 122, in main
    status = self.run(options, args)
  File "C:\Python27\lib\site-packages\pip\commands\install.py", line 274, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundl e=self.bundle)
  File "C:\Python27\lib\site-packages\pip\req.py", line 1220, in prepare_files
    req_to_install.assert_source_matches_version()
  File "C:\Python27\lib\site-packages\pip\req.py", line 460, in assert_source_matches_version
    % (display_path(self.source_dir), version, self))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 55: ordinal  not in range(128)

Traceback (most recent call last):
  File "C:\Python27\lib\runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "C:\Python27\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "C:\Python27\Scripts\pip.exe\__main__.py", line 9, in <module>
  File "C:\Python27\lib\site-packages\pip\__init__.py", line 185, in main
    return command.main(cmd_args)
  File "C:\Python27\lib\site-packages\pip\basecommand.py", line 161, in main
    text = '\n'.join(complete_log)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 70: ordinal  not in range(128)

Я предполагаю, что причина в кириллице в имени пользователя Windows, но ничего не могу с этим поделать. Существует ли какое-либо хорошее решение (без создания нового пользователя или чего-то подобного)? Не могу найти ответ. Благодарю вас!


person lebvlad    schedule 30.01.2014    source источник
comment
Я получаю точно такую ​​же проблему практически с любой командой pip и без кириллических символов в моем имени пользователя. Я давно отказался от этой проблемы, и теперь я использую виртуальную машину Linux для всех своих вещей Python. Это не лучшее решение, но оно работает.   -  person    schedule 11.06.2014


Ответы (1)


Я не очень много работаю с юникодом (особенно в своих именах пользователей), но, похоже, вы правы в том, что ваше имя пользователя сбивает с толку. Первое исключение — это попытка отформатировать строку ascii с путем, включающим ваше имя пользователя, отличное от ascii, и выдает исключение. Вы можете получить тот же результат, выполнив в интерпретаторе следующее:

print "%s" % (u"Users\Владислав",)

Я немного погуглил и думаю, что вам может помочь этот вопрос/ответ: Проблемы с установкой pip селен

Суть в том, что ваша ОС или терминал могут быть установлены на «ascii» в качестве кодировки по умолчанию. Решение может включать редактирование реестра Windows, поэтому будьте осторожны. В качестве еще одного примечания вы можете проверить свою кодировку по умолчанию в python, выполнив:

import sys
sys.getdefaultencoding()

Изменить

Я сейчас не на своей машине с Windows, поэтому я не уверен, где это должно быть установлено, но один из упомянутых ответов сказал:

Это выглядело как проблема с локалью в моей ОС. Пришлось перезаписать глобальную переменную среды LANG на LANG="en_US.UTF-8".

person djhoese    schedule 11.06.2014
comment
Спасибо, Дэйв! К счастью, мое вынужденное знакомство с MS Windows закончилось довольно быстро, и я снова пользуюсь GNU\Linux. Просто все работает как надо. Что касается проблемы, то сейчас поискал похожие темы и нашел решение, которое ее действительно решило. Все дело в chcp 65001 треде здесь! (щелкнуть) - person lebvlad; 12.06.2014