Установка PIP Numpy выдает ошибку "кодек ascii не может декодировать байт 0xe2"

У меня недавно установлена ​​Ubuntu на только что собранном компьютере. Я только что установил python-pip с помощью apt-get. Теперь, когда я пытаюсь установить Numpy и Pandas, это выдает следующую ошибку.

Я видел эту ошибку, упомянутую во многих местах в SO и Google, но я не смог найти решение. Некоторые люди упоминают, что это ошибка, некоторые темы просто мертвы... Что происходит?

Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    load_entry_point('pip==1.5.4', 'console_scripts', 'pip')()
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 185, in main
    return command.main(cmd_args)
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 161, in main
    text = '\n'.join(complete_log)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 72: ordinal not in range(128)

18 ответов

Решение

У меня была именно эта проблема недавно и использовал

apt-get install python-numpy

Это добавляет NumPy к вашему системному интерпретатору Python. Возможно, мне пришлось сделать то же самое для matplotlib. Чтобы использовать в virtualenv, вы должны создать свою среду, используя

--system-site-packages

вариант

http://www.scipy.org/install.html

Для меня @Charles Duffy комментарий решил это. Поместите это в свой env:

LC_ALL=C

Вы можете добавить его в свой.bashrc такой строкой:

export LC_ALL=C

Но позаботьтесь о том, чтобы вы затронули все остальные программы. Так что вы можете использовать его только для запуска пипа:

$ LC_ALL=C pip install ...

Попробуйте обновить pip:

pip install -U pip

У меня была такая проблема с пакетом matplotlib. Я должен был выполнить:

export LC_ALL=C
pip install --upgrade setuptools

Для меня это было решено путем игнорирования (предположительно) поврежденного кэша с помощью

pip install --no-cache-dir ...

как описано здесь: https://github.com/pypa/pip/issues/2674

Сочетание

sudo apt-get install python-dev

а также

export LC_ALL=C
pip install --upgrade setuptools

решил мою проблему.

При запуске в контейнере Docker это исправило это для меня (в проекте django-postgrespool, но это также должно работать здесь).

# Set the locale
RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
    locale-gen
ENV LANG en_US.UTF-8  
ENV LANGUAGE en_US:en  
ENV LC_ALL en_US.UTF-8   

см. /questions/14810354/kak-ustanovit-lokal-vnutri-kontejnera-ubuntu-docker/14810377#14810377

У меня была похожая ошибка при запуске pip install pandas и это было связано с нехваткой памяти. Я увеличил объем памяти в моей виртуальной машине до 4G, и все было исправлено.

Недавно я наткнулся на ту же проблему, которая решила ее для меня:

              echo 'export LANG=en_US.UTF-8' >> ~/.bashrc
              echo 'export LANGUAGE=en_US:en' >> ~/.bashrc
              echo 'export LC_ALL=en_US.UTF-8' >> ~/.bashrc
              sudo apt-get install language-pack-en

Заметка,

У меня уже были установлены python-numpy и python-dev. Даже это может вызвать проблемы в вашей системе. Вы также можете экспортировать LC_ALL=C вместо en_US.UTF-8(или любого другого языка)

@OSX Users: Добавьте следующие строки в ваш ~/.profile или же ~/.bashrc

LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"

Выполните сценарии, используя source ~/.profile или же source ~/.bashrc

В каталоге 'site-packages' создайте файл 'sitecustomize.py' следующим образом

import sys
sys.setdefaultencoding("utf-8")

Теперь вы можете получить файл "pip.log"

Пытаться sudo apt-get install python-numpy, Это сработало для меня, и то же самое можно использовать для scipy,pandas и т. Д., Заменив их вместо numpy. (Y),

Сброс региональных настроек в моей машине до ожидаемого решил мою проблему. Для меня проблема началась, когда я переключил свои языковые настройки на английский (Индия). Мне пришлось переключить его обратно на английский (Великобритания).

Так много ответов, и ни один из них не работал для меня, хотя некоторые явно работали для других людей. Но потом я понял, в чем заключается моя проблема, поэтому я просто добавлю ее в коллекцию:

dpkg-reconfigure locales
# enable the "en-US.UTF-8" locale
# when asked for a default, no need to define one

Дело в том, что я работал внутри контейнера Debian Stretch Linux, в котором не было установлено ни одного языка UTF-8, возможно потому, что я загрузил минимальный образ. Теперь, когда этот языковой стандарт UTF-8 установлен, pip правильно установил numpy и другие пакеты.

Если вам нужна версия numpy для pip, вы можете построить зависимости для пакета, а затем установить его с помощью pip

sudo apt-get build-dep python-numpy
pip install numpy

Это должно установить все необходимое на системном уровне для установки пакета.

Была похожая проблема на Jetson TK1 с ​​Ubuntu.

Отлично работает с apt-get install python-pandas

Я встречал похожую проблему. Я старался:

export LC_ALL=C
pip install --upgrade setuptools

Но это не решило проблему, но появилась другая ошибка:

AttributeError: у объекта 'str' нет атрибута 'rollback'

Тогда я попробовал:

pip install -U pip

Тогда проблема была решена.

В моем случае я только что установил Python из исходного кода (на удаленной машине, где я не sudo). Для любой причины, pip был на какой-то действительно старой версии. Так после:

python -m pip install --upgrade pip

Я смог установить numpy и все что хотел без проблем.

Другие вопросы по тегам