LINUX.ORG.RU

История изменений

Исправление saahriktu, (текущая версия) :

и ничего не нужно патчить

На самом деле, и при локали KOI8-R в целом ничего патчить не нужно. И тот же Python 3 продолжает поддерживать KOI8-R из коробки. Вся засада в том, что pip - это отдельный набор скриптов, который не читает локаль юзера. В нём гвоздями прибита одна конкретная кодировка. Что и приводит к его падению когда он пытается прочитать информацию о дистрибутиве. Но, это легко исправляется переписыванием прописанной кодировки. В итоге рабочие строки принимают такой вид:

> grep koi8-r distro.py
                    v = v.decode('koi8-r')
        stdout, stderr = stdout.decode('koi8-r'), stderr.decode('koi8-r')
            line = line.decode('koi8-r') if isinstance(line, bytes) else line
            line = line.decode('koi8-r')
>
И оно просто работает в 3-ем Python'е.

Исходная версия saahriktu, :

и ничего не нужно патчить

На самом деле, и при локали KOI8-R в целом ничего патчить не нужно. И тот же Python 3 продолжает поддерживать KOI8-R из коробки. Вся засада в том, что pip - это отдельный набор скриптов, который не читает локаль юзера. В нём гвоздями прибита одна конкретная кодировка. Что и приводит к его падению когда он пытается прочитать информацию о дистрибутиве. Но, это легко исправляется переписывание прописанной кодировки. В итоге рабочие строки принимают такой вид:

> grep koi8-r distro.py
                    v = v.decode('koi8-r')
        stdout, stderr = stdout.decode('koi8-r'), stderr.decode('koi8-r')
            line = line.decode('koi8-r') if isinstance(line, bytes) else line
            line = line.decode('koi8-r')
>
И оно просто работает в 3-ем Python'е.