Установка 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
вариант
Для меня @Charles Duffy комментарий решил это. Поместите это в свой env:
LC_ALL=C
Вы можете добавить его в свой.bashrc такой строкой:
export LC_ALL=C
Но позаботьтесь о том, чтобы вы затронули все остальные программы. Так что вы можете использовать его только для запуска пипа:
$ LC_ALL=C pip install ...
У меня была такая проблема с пакетом 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
и все что хотел без проблем.