使用virtualenv进行pip安装Matplotlib错误


106

我正在尝试在新的virtualenv中安装matplotlib。

当我做:

pip install matplotlib

要么

pip install http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.0/matplotlib-1.1.0.tar.gz

我收到此错误:

building 'matplotlib._png' extension

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -fPIC -  DPY_ARRAY_UNIQUE_SYMBOL=MPL_ARRAY_API -DPYCXX_ISO_CPP_LIB=1 -I/usr/local/include -I/usr/include -I. -I/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/numpy/core/include -I. -I/usr/include/python2.7 -c src/_png.cpp -o build/temp.linux-x86_64-2.7/src/_png.o

src/_png.cpp:10:20: fatal error: png.h: No such file or directory

compilation terminated.

error: command 'gcc' failed with exit status 1

有人知道发生了什么吗?

任何帮助,不胜感激。


2
您可能还会看到The following required packages can not be built: freetype, png(我认为)较新版本的中的相同错误pip
LondonRob

Answers:


176

构建Matplotlib需要libpngfreetype以及)不是python库,因此pip无法处理(或freetype)安装它。

您需要按照libpng-develfreetype-devel(或与您的操作系统等效的其他方式)安装一些东西。

请参阅matplotlib 的构建要求/说明


44
谢谢(你的)信息!我终于得到它通过在Ubuntu安装以下相关工作:libpng-devlibjpeg8-devlibfreetype6-dev
达尔文科技公司

37
sudo apt-get build-dep python-matplotlib也有把戏!
grisaitis

2
它可能会起作用,但请注意,它想安装很多软件包(超出此注释框的大小),但需要安装约0.6 GB的软件包。
Achal Dave 2014年

18
在我的debian(喘息/不稳定)系统上,即使libfreetype6-dev安装了它也失败了。原来,我还需要pkg-config安装。
2014年

我实际上在ubuntu 14.04上安装了libfreetype6-dev。Matplotlib似乎没有选择它。
tutuca


30

由于我两次都在这个问题上苦苦挣扎(即使在全新安装kubuntu 15.04之后),而安装freetype也解决不了任何问题,因此我进行了进一步调查。

解决方案:
来自github问题:

仅当未安装pkg-config时,才会发生此错误;
现在,简单的操作
sudo apt-get install pkg-config
将支持包含路径。

安装完成后顺利进行。


同样在这里。pip install matplotlib给我错误:IMPORTANT WARNING: pkg-config is not installed. matplotlib may not be able to find some of its dependencies.Freetype显示未安装。我只是做到了brew install pkg-config并且能够度过。
莉莉

这也是Windows Insider Preview上Ubuntu上的Bash上的问题
Jens de Bruijn 2016年

27

作为补充,在Amazon EC2上,我需要做的是:

sudo yum install freetype-devel
sudo yum install libpng-devel
sudo pip install matplotlib

6
建议将软件包安装到虚拟环境中,这样pip非常好。因此,sudo pip install否定了pip带来的大多数实用性。
罗马,

8

在OSX上,我可以通过以下方式安装matplotlib:

pip install matplotlib==1.4.0

只有在我跑完之后:

brew install freetype


2
sudo apt-get install libpng-dev libjpeg8-dev libfreetype6-dev

在Ubuntu 14.04上为我工作


sudo apt-get install pkg-config首先需要。
jpcgt

@RahulChauhan:请将您的替代解决方案作为单独的答案发布,而不要尝试将其编辑为其他人的答案。
Ilmari Karonen

0

以上答案均不适用于Mint,因此我做到了:

sudo apt-get install build-essential g++

0

如果在MacOSx上尝试

xcode-select --install

这符合subprocess 32,失败的原因。


0

要减少安装所需的软件包,您只需要

apt-get install -y \
    libfreetype6-dev \
    libxft-dev && \
    pip install matplotlib

您将在本地安装以下软件包

Collecting matplotlib
  Downloading matplotlib-2.2.0-cp35-cp35m-manylinux1_x86_64.whl (12.5MB)
Collecting pytz (from matplotlib)
  Downloading pytz-2018.3-py2.py3-none-any.whl (509kB)
Collecting python-dateutil>=2.1 (from matplotlib)
  Downloading python_dateutil-2.6.1-py2.py3-none-any.whl (194kB)
Collecting pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 (from matplotlib)
  Downloading pyparsing-2.2.0-py2.py3-none-any.whl (56kB)
Requirement already satisfied: six>=1.10 in /opt/conda/envs/pytorch-py35/lib/python3.5/site-packages (from matplotlib)
Collecting cycler>=0.10 (from matplotlib)
  Downloading cycler-0.10.0-py2.py3-none-any.whl
Collecting kiwisolver>=1.0.1 (from matplotlib)
  Downloading kiwisolver-1.0.1-cp35-cp35m-manylinux1_x86_64.whl (949kB)
Requirement already satisfied: numpy>=1.7.1 in /opt/conda/envs/pytorch-py35/lib/python3.5/site-packages (from matplotlib)
Requirement already satisfied: setuptools in /opt/conda/envs/pytorch-py35/lib/python3.5/site-packages/setuptools-27.2.0-py3.5.egg (from kiwisolver>=1.0.1->matplotlib)
Installing collected packages: pytz, python-dateutil, pyparsing, cycler, kiwisolver, matplotlib
Successfully installed cycler-0.10.0 kiwisolver-1.0.1 matplotlib-2.2.0 pyparsing-2.2.0 python-dateutil-2.6.1 pytz-2018.3

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.