Ошибка установки пакета Matplotlib с помощью virtualenv


106

Я пытаюсь установить matplotlib в новом virtualenv.

Когда я делаю:

pip install matplotlib

или

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

Я получаю такую ​​ошибку:

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

Кто-нибудь знает, что происходит?

Любая помощь очень ценится.


2
Вы также можете увидеть The following required packages can not be built: freetype, pngту же ошибку в (я думаю) более новой версии pip.
LondonRob

Ответы:


177

Для сборки Matplotlib требуется libpngfreetypeтакже) библиотека, которая не является библиотекой Python, поэтому pipне требует ее установки (или freetype).

Вам нужно будет установить что-то вроде libpng-develи freetype-devel(или другого эквивалента для вашей ОС).

См. Требования / инструкции по сборке для matplotlib.


44
Спасибо за информацию! Я , наконец , получил это работает путем установки следующих зависимостей в убунту: libpng-dev, libjpeg8-dev, libfreetype6-dev.
Darwin Tech

37
sudo apt-get build-dep python-matplotlibтоже делает свое дело!
grisaitis

2
Это может сработать, но обратите внимание, что он хочет установить довольно много пакетов (больше, чем может поместиться в этом поле для комментариев), но около 0,6 ГБ пакетов.
Ахал Дэйв,

18
В моей системе debian (wheezy / unstable) он не работал даже при libfreetype6-devустановленном. Оказалось, что мне тоже нужно было pkg-configустановить.
Джон

На самом деле у меня есть libfreetype6-dev, установленная на ubuntu 14.04. Matplotlib, похоже, не выбирает его.
tutuca


30

Поскольку я дважды боролся с этой проблемой (даже после установки новой версии kubuntu 15.04) и установка freetype ничего не решила, я продолжил исследование.

Решение:
Из проблемы github:

Эта ошибка возникает, только если не установлен pkg-config;
на данный момент простой
sudo apt-get install pkg-config
будет подкреплять включаемые пути.

После этого установка проходит гладко.


Тоже самое. pip install matplotlib дал мне ошибку: IMPORTANT WARNING: pkg-config is not installed. matplotlib may not be able to find some of its dependencies.Freetype показывает, что не установлен. Я просто сделал brew install pkg-configи смог обойтись.
Lily

Это также проблема Bash на Ubuntu в Windows Insider Preview
Йенс де Бруйн,

27

В качестве дополнения к Amazon EC2 мне нужно сделать следующее:

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

6
Рекомендуется установить пакет в виртуальную среду, что pipтак приятно. Следовательно, sudo pip installсводит на нет большую часть полезности, которую дает pip.
Роман

8

В OSX мне удалось установить matplotlib через:

pip install matplotlib==1.4.0

только после того, как я побежал:

brew install freetype


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

работал у меня на Ubuntu 14.04


sudo apt-get install pkg-configХотя мне нужно было сначала.
jpcgt

@RahulChauhan: Пожалуйста, опубликуйте свое альтернативное решение как отдельный ответ вместо того, чтобы пытаться отредактировать его в чей-то ответ.
Ilmari

0

Ни один из приведенных выше ответов не помог мне в Mint, поэтому я сделал:

sudo apt-get install build-essential g++

0

Если на MacOSx попробуйте

xcode-select --install

Это соответствует subprocess 32причине сбоя.


0

Чтобы уменьшить количество необходимых пакетов для установки, вам просто нужно

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

и вы получите следующие пакеты, установленные локально

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.