Pip installa l'errore Matplotlib con virtualenv


106

Sto cercando di installare matplotlib in un nuovo virtualenv.

Quando io faccio:

pip install matplotlib

o

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

Ottengo questo errore:

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

Qualcuno ha un'idea di cosa sta succedendo?

Qualsiasi aiuto molto apprezzato.


2
Potresti anche vedere The following required packages can not be built: freetype, pngquale è lo stesso errore (credo) in una versione più recente di pip.
— LondonRob

Risposte:


176

La compilazione di Matplotlib richiede libpng(e freetype, pure) che non è una libreria Python, quindi pipnon gestisce l'installazione (o freetype).

Dovrai installare qualcosa sulla falsariga di libpng-devele freetype-devel(o qualunque sia l'equivalente per il tuo sistema operativo).

Vedere i requisiti / istruzioni di costruzione per matplotlib.


44
Grazie per le informazioni! Finalmente ho ottenuto che funziona installando le seguenti dipendenze in Ubuntu: libpng-dev, libjpeg8-dev, libfreetype6-dev.
— Darwin Tech

37
sudo apt-get build-dep python-matplotlibfa anche il trucco!
— grisaitis

2
Può funzionare, ma nota che vuole installare un bel po 'di pacchetti (più di quelli che possono stare in questa casella di commento), ma circa 0,6 GB di pacchetti.
— Achal Dave

18
Sul mio sistema Debian (wheezy / unstable) non funzionava anche se libfreetype6-devinstallato. Si è scoperto che avevo anche bisogno di essere pkg-configinstallato.
— Jon

In realtà ho libfreetype6-dev installato su Ubuntu 14.04. Matplotlib sembra non sceglierlo.
— tutuca


30

Poiché ho lottato con questo problema due volte (anche dopo l'installazione di kubuntu 15.04) e l'installazione di freetype non ha risolto nulla, ho indagato ulteriormente.

La soluzione:
dal problema di GitHub:

Questo bug si verifica solo se pkg-config non è installato;
un semplice
sudo apt-get install pkg-config
sosterrà i percorsi di inclusione per ora.

Dopo questa installazione procede senza problemi.


Anch'io. pip install matplotlib mi ha dato un errore: IMPORTANT WARNING: pkg-config is not installed. matplotlib may not be able to find some of its dependencies.Freetype mostra non installato. L'ho appena fatto brew install pkg-confige sono riuscito a cavarmela.
— Lily

Questo è anche il problema su Bash su Ubuntu su Windows Insider Preview
— Jens de Bruijn

27

Come supplemento, su Amazon EC2, quello che devo fare è:

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

6
Si consiglia di installare un pacchetto in un ambiente virtuale, il che lo rende pipmolto piacevole. Quindi sudo pip installnega la maggior parte dell'utilità che pip porta in tavola.
— Roman

8

Su OSX sono stato in grado di installare matplotlib tramite:

pip install matplotlib==1.4.0

solo dopo aver corso:

brew install freetype


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

ha funzionato per me su Ubuntu 14.04


sudo apt-get install pkg-configPrima però avevo bisogno .
— jpcgt

@RahulChauhan: Pubblica la tua soluzione alternativa come risposta separata invece di provare a modificarla nella risposta di qualcun altro.
— Ilmari Karonen

0

Nessuna delle risposte precedenti ha funzionato per me in Mint, quindi ho fatto:

sudo apt-get install build-essential g++

0

Se su MacOSx prova

xcode-select --install

Questo è conforme subprocess 32, il motivo del fallimento.


0

Per ridurre i pacchetti richiesti da installare è sufficiente

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

e otterrai i seguenti pacchetti installati 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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.