PIP安装Numpy抛出错误“ascii编解码器无法解码字节0xe2”

时间:2014-10-20 19:46:18

标签: python numpy pandas pip

我在新建的计算机上安装了新安装的Ubuntu。我刚刚使用apt-get安装了python-pip。现在,当我尝试pip安装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 个答案:

答案 0 :(得分:45)

我最近遇到了这个问题并使用了

apt-get install python-numpy

这为你的系统python解释器添加了numpy。我可能不得不为matplotlib做同样的事情。要在virtualenv中使用,您必须使用

创建环境
--system-site-packages

选项

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

答案 1 :(得分:36)

对我来说@Charles Duffy评论解决了它。 把它放在你的环境中:

LC_ALL=C

您可以使用以下行添加到.bashrc:

export LC_ALL=C

但请注意,您将影响所有其他计划。所以你可能只想把它用于pip运行:

$ LC_ALL=C pip install ...

答案 2 :(得分:12)

尝试更新pip:

pip install -U pip

答案 3 :(得分:7)

我有matplotlib包的问题。 我不得不执行:

export LC_ALL=C
pip install --upgrade setuptools

答案 4 :(得分:4)

对我来说,这是通过用

忽略(可能是)已损坏的缓存来解决的
pip install --no-cache-dir ...

如此处所述:https://github.com/pypa/pip/issues/2674

答案 5 :(得分:3)

运行pip install pandas时出现类似错误,这是由于内存不足造成的。我将虚拟机中的内存增加到4G并修复了一些问题。

答案 6 :(得分:3)

的组合
sudo apt-get install python-dev

export LC_ALL=C
pip install --upgrade setuptools

解决了我的问题。

答案 7 :(得分:2)

最近,我偶然发现了同样的问题 这解决了我的问题:

              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(或任何其他语言)

答案 8 :(得分:1)

在'site-packages'目录中,像这样制作'sitecustomize.py'

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

现在您可以获取文件'pip.log'

答案 9 :(得分:1)

当在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   

请参阅https://stackoverflow.com/a/28406007/1876203

答案 10 :(得分:1)

@OSX用户:将以下行添加到~/.profile~/.bashrc

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

使用执行脚本     source ~/.profilesource ~/.bashrc

答案 11 :(得分:1)

尝试sudo apt-get install python-numpy。 它适用于我,同样可以用于scipy,pandas等,取代它们代替numpy。 (Y)

答案 12 :(得分:0)

很多答案都没有对我有用,即使有些答案明显适合其他人。但我随后想出了我的问题,所以我只是将它添加到集合中:

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语言环境,请正确安装numpy和其他软件包。

答案 13 :(得分:0)

就我而言,我刚刚从源代码安装了Python(在我不是sudo的远程机器上)。无论出于何种原因,pip处于一些非常旧的版本。所以之后:

python -m pip install --upgrade pip

我能够毫无困难地安装numpy和我想要的一切。

答案 14 :(得分:0)

我遇到了类似的问题。我试过了:

export LC_ALL=C
pip install --upgrade setuptools

但它没有解决问题,但又出现了另一个错误:

  

AttributeError:'str'对象没有属性'rollback'

然后我尝试了:

pip install -U pip

然后问题解决了。

答案 15 :(得分:0)

使用Ubuntu在Jetson TK1上遇到类似的问题。

apt-get install python-pandas

一起使用

答案 16 :(得分:0)

将我的机器中的区域设置重置为预期的设置解决了我的问题。对我来说,当我将语言设置切换为英语(印度)时问题就出现了。我不得不把它换回英国(英国)。

答案 17 :(得分:0)

如果你想要numpy的pip版本,你可以为包构建依赖项,然后使用pip安装它

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

这应该安装系统级所需的一切来安装软件包。