Błąd instalacji Pip Matplotlib z virtualenv

106

Próbuję zainstalować matplotlib w nowym virtualenv.

Kiedy robię:

pip install matplotlib

lub

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

Otrzymuję ten błąd:

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

Czy ktoś ma pomysł, co się dzieje?

Każda pomoc bardzo doceniona.

Darwin Tech
źródło
2
Możesz również zobaczyć, The following required packages can not be built: freetype, pngktóry jest ten sam błąd w (myślę) nowszej wersji pip.
LondonRob

Odpowiedzi:

177

Budowanie Matplotlib wymaga libpng(i freetyperównież), które nie jest biblioteką Pythona, więc pipnie obsługuje jego instalacji (lub freetype).

Musisz zainstalować coś w stylu libpng-develi freetype-devel(lub jakikolwiek odpowiednik dla twojego systemu operacyjnego).

Zobacz wymagania / instrukcje dotyczące budowania dla matplotlib.

Joe Kington
źródło
44
Dzięki za informację! I wreszcie dostał pracę instalując następujące zależności w ubuntu: libpng-dev, libjpeg8-dev, libfreetype6-dev.
Darwin Tech
37
sudo apt-get build-dep python-matplotlibteż załatwia sprawę!
grisaitis
2
Może działać, ale pamiętaj, że chce zainstalować sporo pakietów (więcej niż może się zmieścić w tym polu komentarza), ale o wartości około 0,6 GB.
Achal Dave,
18
W moim systemie debian (wheezy / unstable) nie udało się nawet libfreetype6-devzainstalować. Okazało się, że również potrzebowałem pkg-configzainstalować.
Jon
Właściwie mam zainstalowaną bibliotekę libfreetype6-dev na Ubuntu 14.04. Wygląda na to, że Matplotlib go nie wybiera.
tutuca
51

Aby wygenerować wykres w formacie png należy zainstalować następujące pakiety zależne

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

Ubuntu https://apps.ubuntu.com/cat/applications/libpng12-0/ lub używając następującego polecenia

sudo apt-get install libpng12-0
Lava Sangeetham
źródło
30

Ponieważ dwukrotnie zmagałem się z tym problemem (nawet po nowej instalacji kubuntu 15.04) i zainstalowanie freetype nic nie rozwiązało, zbadałem dalej.

Rozwiązanie:
z problemu na githubie:

Ten błąd występuje tylko wtedy, gdy pakiet pkg-config nie jest zainstalowany;
prosty
sudo apt-get install pkg-config
będzie na razie wzmocnić ścieżki włączania.

Po tej instalacji przebiega bezproblemowo.

Robin Nemeth
źródło
To samo tutaj. pip install matplotlib dał mi błąd: IMPORTANT WARNING: pkg-config is not installed. matplotlib may not be able to find some of its dependencies.Freetype pokazuje niezainstalowane. Po prostu to zrobiłem brew install pkg-configi mogłem sobie poradzić.
Lily,
Jest to również problem z Bash na Ubuntu w Windows Insider Preview
Jens de Bruijn
27

Jako uzupełnienie na Amazon EC2 muszę zrobić:

sudo yum install freetype-devel
sudo yum install libpng-devel
sudo pip install matplotlib
ciphor
źródło
6
Zaleca się zainstalowanie pakietu w środowisku wirtualnym, co jest piptakie przyjemne. Stąd sudo pip installneguje większość użyteczności, jaką pip wnosi do stołu.
Roman
8

Na OSX udało mi się zainstalować matplotlib przez:

pip install matplotlib==1.4.0

dopiero po biegu:

brew install freetype
gh4x
źródło
2
sudo apt-get install libpng-dev libjpeg8-dev libfreetype6-dev

pracował dla mnie na Ubuntu 14.04

user2436428
źródło
sudo apt-get install pkg-configJednak najpierw potrzebowałem .
jpcgt
@RahulChauhan: Prześlij swoje alternatywne rozwiązanie jako oddzielną odpowiedź, zamiast próbować edytować je w odpowiedzi innej osoby.
Ilmari Karonen
0

Żadna z powyższych odpowiedzi nie działała dla mnie w Mint, więc tak:

sudo apt-get install build-essential g++
AndreL
źródło
0

Jeśli na MacOSx, spróbuj

xcode-select --install

To jest zgodne subprocess 32, przyczyną niepowodzenia.

Coderaemon
źródło
0

Aby zmniejszyć liczbę pakietów wymaganych do zainstalowania, wystarczy

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

a otrzymasz lokalnie zainstalowane następujące pakiety

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
źródło
0

Inną opcją jest instalacja programu anaconda, który jest dostarczany z pakietami takimi jak: Matplotlib, numpy i pandas.

https://anaconda.org

Romesh Tirimanna
źródło