Найти - Пользователи
Полная версия: Ошибка UnicodeDecodeError, Python 2.7.10
Начало » Python для новичков » Ошибка UnicodeDecodeError, Python 2.7.10
1
Zorge44
Как исправить? Помогите!
JOHN_16
Вообще на странице pypi в классификаторах указано поддержка POSIX совместимых ОС, коим Windows не относится. Вполне вероятно на данной платформе этот пакет не работает.
Но суд по ошибке, видимо это просто недоработка авторов.
doza_and
У нас кстати были битвы по поводу того WINDOWS это POSIX или нет. https://ru.wikipedia.org/wiki/POSIX#POSIX_.D0.B4.D0.BB.D1.8F_Windows

Все кончается утверждением что он POSIX но ЧАСТИЧНО :):):)

По сути проблемы. Вложите текст сообщения об ошибке в виде нормального текста на вашей картинке ни черта не видно.

Пока не видно, изложу общие соображения. Ошибки кодировки часто бывают под windows если
1. Используются папки с русскими буквами.
2. Имя пользователя русское (вообще фатально для многих пакетов, включая pip)

Рашается посто - под отладчиком пускается и правится то место где происходит падение.
Zorge44
doza_and
Вложите текст сообщения об ошибке в виде нормального текста на вашей картинке ни черта не видно.

Собственно, текст из Powershell:
Collecting mitmproxy
Exception:
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\basecommand.py", line 223, in main
    status = self.run(options, args)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\commands\install.py", line 280, in run
    requirement_set.prepare_files(finder)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\req\req_set.py", line 317, in prepare_files
    functools.partial(self._prepare_file, finder))
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\req\req_set.py", line 304, in _walk_req_to_install
    more_reqs = handler(req_to_install)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\req\req_set.py", line 439, in _prepare_file
    req_to_install.populate_link(finder, self.upgrade)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\req\req_install.py", line 244, in populate_link
    self.link = finder.find_requirement(self, upgrade)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\index.py", line 486, in find_requirement
    all_versions = self._find_all_versions(req.name)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\index.py", line 404, in _find_all_versions
    index_locations = self._get_index_urls_locations(project_name)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\index.py", line 378, in _get_index_urls_locations
    page = self._get_page(main_index_url)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\index.py", line 810, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\index.py", line 920, in get_page
    "Cache-Control": "max-age=600",
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\_vendor\requests\sessions.py", line 477, in get
    return self.request('GET', url, **kwargs)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\download.py", line 373, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\_vendor\requests\sessions.py", line 465, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\_vendor\requests\sessions.py", line 605, in send
    r.content
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\_vendor\requests\models.py", line 750, in content
    self._content = bytes().join(self.iter_content(CONTENT_CHUNK_SIZE)) or bytes()
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\_vendor\requests\models.py", line 673, in generate
    for chunk in self.raw.stream(chunk_size, decode_content=True):
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\_vendor\requests\packages\urllib3\response.py", line 307,
in stream
    data = self.read(amt=amt, decode_content=decode_content)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\_vendor\requests\packages\urllib3\response.py", line 243,
in read
    data = self._fp.read(amt)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\_vendor\cachecontrol\filewrapper.py", line 54, in read
    self.__callback(self.__buf.getvalue())
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\_vendor\cachecontrol\controller.py", line 244, in cache_re
sponse
    self.serializer.dumps(request, response, body=body),
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\download.py", line 276, in set
    return super(SafeFileCache, self).set(*args, **kwargs)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\_vendor\cachecontrol\caches\file_cache.py", line 99, in se
t
    with self.lock_class(name) as lock:
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\_vendor\lockfile\mkdirlockfile.py", line 18, in __init__
    LockBase.__init__(self, path, threaded, timeout)
  File "C:\Python27\lib\site-packages\pip-7.0.3-py2.7.egg\pip\_vendor\lockfile\__init__.py", line 189, in __init__
    hash(self.path)))
  File "C:\Python27\lib\ntpath.py", line 85, in join
    result_path = result_path + p_path
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcf in position 8: ordinal not in range(128)

doza_and
Ошибки кодировки часто бывают под windows если 1. Используются папки с русскими буквами.2. Имя пользователя русское (вообще фатально для многих пакетов, включая pip)

Имя пользователя и название всех папок (по крайней мере на диске С) не содержат русских символов.
doza_and
1. На сайте производителя есть версия под Винду, потенциально должно идти.
2. Мне удалось поставить его под XP несколько упрямился торнадо… Вобщем такой ошибки как у вас нет.

В моей версии C:\Python27\lib\ntpath.py нет даже намека на result_path = result_path + p_path - эта часть переписана.

Начните с обновления pip
pip install -U pip

у меня версия 7.1.0

Если не поможет тогда можно отлаживать процесс установки.

Мне встречался еще вариант когда программы при установке писали в реестр данные в кодировке отличной от кодировки по умолчанию что тоже приводило к неработоспособности pip. Не похоже что это ваш вариант.



Zorge44
doza_and
Начните с обновления pip

Обновление pip до 7.1.0 не помогло. Попробовал также поставить более ранний Python 2.7.9 - результат тот же. В любом случае, спасибо за уделенное время

Единственное, на что остается грешить, это на то, что файлы .py почему-то по умолчанию открываются командной строкой cmd, и переназначить программу по умолчанию Windows не дает (при этом .pyc по умолчанию открываются python.exe и есть возможность переназначить).
doza_and
А почему вы не хотите отладить процесс установки? Все сразу встанет на свои места.
Zorge44
doza_and
А почему вы не хотите отладить процесс установки?

Каким образом? Я в этом мало что понимаю
doza_and
Zorge44
Каким образом?
Для удобства надо поставить ide. ну под разовое использование в windows пойдет pyscripter.

насколько я помню в директории scripts pip.py отсутствует. Поэтому создаем свой аналог.
import pip
def install(package):
    pip.main(['install', package])
# Example
if __name__ == '__main__':
    install('nose')
и запускаем его на выполнение в режиме отладки.
Ставьте точку останова в последнем месте описанном в traceback ошибки(в вашем случае File “C:\Python27\lib\ntpath.py”, line 85). Когда дойдете до этого места
Посмотрите почему возникает ошибка перекодирования . И покумекайте как этого избежать.

Все это можно делать принтами, но просто это будет дольше чем поставить отладчик.

Если вы любитель консольных утилит, то можно ничего не ставить. Есть встроенный отладчик pdb.
Вставляете в тот файл в котором возникает ошибка

.....
import pdb; pdb.set_trace()
.....

и вываливаетесь в этом месте в консольный отладчик. Дальше действия аналогичны.
Zorge44
Вопрос решен, нужно было просто изменить имя компьютера таким образом, чтоб в нем не было русских букв (к примеру, вместо Admin-ПК — Admin-PC).
Всем спасибо за помощь. Тема закрыта.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB