2014-01-30 2 views
4

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

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, но ничего не может сделать с ним. Существует ли какое-либо хорошее решение (без создания нового пользователя или что-то в этом роде)? Не удается найти ответ. Спасибо!

+0

Я получаю ту же самую проблему почти с любой командой 'pip' и без кириллических символов в моем имени пользователя. Я давно отказался от этой проблемы, и теперь я использую виртуальную машину Linux для всех своих продуктов Python. Это не лучшее решение, но оно работает. –

ответ

0

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

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

Я сделал немного погуглите и думаю, что вы могли бы получить некоторую помощь от этого вопроса/ответа: Trouble with pip install selenium

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

import sys 
sys.getdefaultencoding() 

Редактировать

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

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

+0

Спасибо, Дейв! К счастью, мое постоянное знакомство с MS Windows закончилось довольно быстро, и я снова использую GNU \ Linux. Это все работает так, как должно. Что касается проблемы, теперь искали аналогичные потоки и нашли решение, которое действительно решило его. Это все о 'chcp 65001' [Тема здесь! (Щелчок)] (http://stackoverflow.com/questions/388490/unicode-characters-in-windows-command-line-how) – lebvlad

Смежные вопросы