Erreur d'installation de Pip Matplotlib avec virtualenv

106

J'essaye d'installer matplotlib dans un nouveau virtualenv.

Quand je fais:

pip install matplotlib

ou

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

J'obtiens cette erreur:

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

Quelqu'un a une idée de ce qui se passe?

Toute aide très appréciée.

Darwin Tech
la source
2
Vous pouvez également voir The following required packages can not be built: freetype, pngquelle est la même erreur (je pense) dans une version plus récente de pip.
LondonRob

Réponses:

177

La construction de Matplotlib nécessite libpng(et freetypeaussi) ce qui n'est pas une bibliothèque python, donc pipne gère pas son installation (oufreetype ).

Vous devrez installer quelque chose comme libpng-develet freetype-devel(ou tout autre équivalent pour votre système d'exploitation).

Voir les exigences / instructions de construction pour matplotlib.

Joe Kington
la source
44
Merci pour l'info! J'ai finalement obtenu ce travail en installant les dépendances suivantes ubuntu: libpng-dev, libjpeg8-dev, libfreetype6-dev.
Darwin Tech
37
sudo apt-get build-dep python-matplotlibfait aussi l'affaire!
grisaitis
2
Cela peut fonctionner, mais notez qu'il veut installer pas mal de paquets (plus que ce que peut contenir cette boîte de commentaires), mais environ 0,6 Go de paquets.
Achal Dave
18
Sur mon système Debian (wheezy / instable), il échouait même avec libfreetype6-devinstallé. Il s'est avéré que j'avais également besoin d'être pkg-configinstallé.
Jon
En fait, j'ai installé libfreetype6-dev sur ubuntu 14.04. Matplotlib ne semble pas le choisir.
tutuca
51

Pour générer un graphique au format png, vous devez installer les packages dépendants suivants

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

Ubuntu https://apps.ubuntu.com/cat/applications/libpng12-0/ ou en utilisant la commande suivante

sudo apt-get install libpng12-0
Lava Sangeetham
la source
30

Comme j'ai lutté avec ce problème deux fois (même après la nouvelle installation de kubuntu 15.04) et que l'installation de freetype n'a rien résolu, j'ai approfondi mes recherches.

La solution:
du problème github:

Ce bogue se produit uniquement si pkg-config n'est pas installé;
un simple
sudo apt-get install pkg-config
étayera les chemins d'inclusion pour l'instant.

Après cette installation se déroule en douceur.

Robin Nemeth
la source
Pareil ici. pip install matplotlib m'a donné une erreur: IMPORTANT WARNING: pkg-config is not installed. matplotlib may not be able to find some of its dependencies.Freetype montre non installé. Je viens de le faire brew install pkg-configet j'ai pu m'en sortir.
Lily
C'est aussi le problème sur Bash sur Ubuntu sur Windows Insider Preview
Jens de Bruijn
27

En complément, sur Amazon EC2, ce que je dois faire est:

sudo yum install freetype-devel
sudo yum install libpng-devel
sudo pip install matplotlib
ciphor
la source
6
Il est recommandé d'installer un package dans un environnement virtuel, ce qui le rend pipsi agréable. Par conséquent, sudo pip installannule la plupart de l'utilité que pip apporte à la table.
Roman
8

Sur OSX, j'ai pu installer matplotlib via:

pip install matplotlib==1.4.0

seulement après avoir couru:

brew install freetype
gh4x
la source
2
sudo apt-get install libpng-dev libjpeg8-dev libfreetype6-dev

a travaillé pour moi sur Ubuntu 14.04

user2436428
la source
J'avais besoin d' sudo apt-get install pkg-configabord cependant.
jpcgt
@RahulChauhan: Veuillez publier votre solution alternative sous forme de réponse distincte au lieu d'essayer de la modifier dans la réponse de quelqu'un d'autre.
Ilmari Karonen le
0

Aucune des réponses ci-dessus n'a fonctionné pour moi à Mint, alors j'ai fait:

sudo apt-get install build-essential g++
AndreL
la source
0

Si sur MacOSx essayez

xcode-select --install

Ceci est conforme subprocess 32, la raison de l'échec.

Coderaemon
la source
0

Pour réduire les packages nécessaires à l'installation, il vous suffit

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

et vous obtiendrez les packages suivants installés localement

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
Loretoparisi
la source
0

Une autre option consiste à installer anaconda, qui est livré avec des packages tels que: Matplotlib, numpy et pandas.

https://anaconda.org

Romesh Tirimanna
la source