Pip install erro Matplotlib com virtualenv


106

Estou tentando instalar o matplotlib em um novo virtualenv.

Quando eu faço:

pip install matplotlib

ou

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

Eu recebo este erro:

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

Alguém tem ideia do que está acontecendo?

Qualquer ajuda muito apreciada.


2
Você também pode ver The following required packages can not be built: freetype, pngqual é o mesmo erro (eu acho) em uma versão mais recente do pip.
LondonRob

Respostas:


176

Construir Matplotlib requer libpng(e freetype, também) que não é uma biblioteca python, então pipnão trata de instalá-la (ou freetype).

Você precisará instalar algo parecido com libpng-devele freetype-devel(ou qualquer equivalente para o seu sistema operacional).

Consulte os requisitos / instruções de construção para matplotlib.


44
Obrigado pela informação! Eu finalmente tenho que trabalhar, instalando as seguintes dependências no ubuntu: libpng-dev, libjpeg8-dev, libfreetype6-dev.
Darwin Tech

37
sudo apt-get build-dep python-matplotlibtambém faz o truque!
grisaitis

2
Pode funcionar, mas observe que ele deseja instalar alguns pacotes (mais do que cabe nesta caixa de comentários), mas cerca de 0,6 GB de pacotes.
Achal Dave de

18
No meu sistema debian (wheezy / instável) ele estava falhando mesmo com libfreetype6-devinstalado. Acontece que eu também precisava pkg-configinstalar.
Jon

Na verdade, eu tenho o libfreetype6-dev instalado no ubuntu 14.04. Matplotlib parece não estar escolhendo.
tutuca


30

Como já lutei com esse problema duas vezes (mesmo após a instalação do kubuntu 15.04) e a instalação do freetype não resolveu nada, investiguei mais a fundo.

A solução:
Do problema do github:

Este bug ocorre apenas se o pkg-config não estiver instalado;
um simples
sudo apt-get install pkg-config
irá escorar os caminhos incluídos por enquanto.

Após esta instalação prosseguir sem problemas.


O mesmo aqui. pip install matplotlib me deu um erro: IMPORTANT WARNING: pkg-config is not installed. matplotlib may not be able to find some of its dependencies.Freetype mostra não instalado. Eu apenas fiz brew install pkg-confige fui capaz de sobreviver.
Lily

Este também é o problema no Bash no Ubuntu no Windows Insider Preview
Jens de Bruijn

27

Como complemento, no Amazon EC2, o que preciso fazer é:

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

6
É recomendável instalar um pacote em um ambiente virtual, o que é pipmuito bom. Conseqüentemente, sudo pip installnega a maior parte da utilidade que o pip traz para a mesa.
Romano de

8

No OSX, consegui instalar o matplotlib via:

pip install matplotlib==1.4.0

só depois de correr:

brew install freetype


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

funcionou para mim no Ubuntu 14.04


Eu precisava sudo apt-get install pkg-configprimeiro, no entanto.
jpcgt de

@RahulChauhan: Publique sua solução alternativa como uma resposta separada, em vez de tentar editá-la na resposta de outra pessoa.
Ilmari Karonen

0

Nenhuma das respostas acima funcionou para mim em Mint, então eu fiz:

sudo apt-get install build-essential g++

0

Se no MacOSx tente

xcode-select --install

Este está em conformidade subprocess 32, o motivo do fracasso.


0

Para reduzir os pacotes necessários para instalar você só precisa

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

e você obterá os seguintes pacotes instalados localmente

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.