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.