Ubuntu, выполняющая `pip install`, выдает ошибку 'Следующие необходимые пакеты не могут быть собраны: * freetype'

145

При выполнении pip install -r requirements.txtя получаю следующую ошибку на этапе установки matplotlib:

REQUIRED DEPENDENCIES AND EXTENSIONS
                 numpy: yes [not found. pip may install it below.]
              dateutil: yes [dateutil was not found. It is required for date
                        axis support. pip/easy_install may attempt to
                        install it after matplotlib.]
               tornado: yes [tornado was not found. It is required for the
                        WebAgg backend. pip/easy_install may attempt to
                        install it after matplotlib.]
             pyparsing: yes [pyparsing was not found. It is required for
                        mathtext support. pip/easy_install may attempt to
                        install it after matplotlib.]
                 pycxx: yes [Couldn't import.  Using local copy.]
                libagg: yes [pkg-config information for 'libagg' could not
                        be found. Using local copy.]
              freetype: no  [pkg-config information for 'freetype2' could
                        not be found.]

...

The following required packages can not be built:

                    * freetype

Не следует pip install -r requirements.txtтакже установить freetype? Как установить freetype в Ubuntu 12.04, чтобы он работал matplotlib?

Афина Мудрость
источник

Ответы:

221

Нет pip, не будет устанавливать зависимости на уровне системы. Это означает, pipчто не будут установлены RPM ( системы на основе Redhat ) или DEB ( системы на основе Debian ).

Для установки системных зависимостей вам потребуется использовать один из следующих методов в зависимости от вашей системы.

Ubuntu / Debian:

apt-get install libfreetype6-dev

Для поиска пакетов в системах на основе Ubuntu / Debian:

apt-cache search <string>

например:

apt-cache search freetype | grep dev

Redhat / CentOS / Fedora:

yum -y install freetype-devel

Для поиска пакетов в системах на основе Redhat / CentOS / Fedora:

yum search <string>

например:

yum search freetype | grep devel

Mac OS X: ( через Homebrew )

brew install freetype

Для поиска пакетов в системах на основе Mac OS X:

brew search <string>

например:

brew search freetype
Джеймс Миллс
источник
Извините, это называется в freetype2эти дни. Обновлено.
Джеймс Миллс
apt-get install freetype2-develтоже выдает ту же ошибку ... Может ли это быть apt-get install freetype*? Кажется, что нужно установить много других пакетов
Athena Wisdom
Это, вероятно, тоже будет работать :) Извините, я считаю, что это называется libfreetype2-devel. Я обновлю свой ответ снова: /
Джеймс Миллс
2
Я думаю, что -develконвенция для RPM, а -devконвенция для DEB. Попробуй apt-cache search '^libfreetype.*-dev$'что даст libfreetype6-dev.
Дитрих Эпп
9
FWIW, brew install freetypeпомог мне на OSX
Nate
144

Мне пришлось установить libxft-dev, чтобы включить matplotlib на сервере ubuntu 14.04.

sudo apt-get install libfreetype6-dev libxft-dev

И тогда я мог бы использовать

sudo easy_install matplotlib
Судипта Басак
источник
10
На Ubuntu 12.04 LTS мне также нужно было установить libxft-dev. Спасибо за эту дополнительную информацию
Toom
3
Почему бы напрямую не использовать sudo apt-get install python-matplotlib, как рекомендовано здесь: matplotlib.org/users/install.html
Тимо
2
У меня уже был установлен libfreetype6-dev. Это помогло мне на Ubuntu 14.10, спасибо!
Вим
4
вещь libxft-dev - это то, что сделало это для меня! Спасибо!
TerminalDilettante
10
По-видимому, реальная зависимость здесь есть pkg-config, которая libxft-devтакже устанавливается как зависимость. Таким образом, правильным ответом будет бегapt-get install libfreetype6-dev pkg-config
Карлес Сала
28

Обходной путь должен сделать то, sudo apt-get install pkg-configчто я нашел в этой проблеме github .

notconfusing
источник
3
установка pkg-configбыла для меня отсутствующим неинтуитивным шагом, при установке matplotlibв контейнере Docker с использованием ubuntu:14.04базового образа.
SlimJim
Это также исправило это для меня на виртуальной машине VM. Похоже, pkg-configэто то, что нужно для установки виртуальной машины.
Алма
6

Ни один из существующих ответов не помог мне обновить matplotlib в Ubuntu. Это то, что в конечном итоге работает для меня:

$ sudo apt-get install build-dep python-matplotlib
$ pip install matplotlib --upgrade
PaulMest
источник
6

Эта команда загрузит все зависимости.

Для Python 2.x

sudo apt-get install python-matplotlib

Для Python 3.x

sudo apt-get install python3-matplotlib

После установки вы можете попробовать

(sudo) pip install matplotlib
MiaeKim
источник
4

На Ubuntu это работало после того, как я установил blt-devпакет.

$sudo apt-get install blt-dev
$pip install matplotlib
Калеб Киаге
источник
Необходимо запустить blt-dev, apt-get install libfreetype6-devпоэтому он автоматически устанавливается вместе с blt-dev.
Тристан
1

Я использую Mint, ни один из этих ответов не работал для меня, мне нужно было:

sudo apt-get install build-essential g++
AndreL
источник
1

У меня была та же проблема с Python 3.6 на Windows, но потом я перешел на Python 3.5.2, и все работает нормально.

Клименков
источник
0

Эта команда sudo apt-get install libfreetype6-devпровалилась для меня в Ubuntu 16.04,
The following packages have unmet dependencies: libfreetype6-dev : Depends: libfreetype6 (= 2.6.1-0.1ubuntu2) but 2.6.1-0.1ubuntu2.3 is to be installed

Итак, я скачал установленный freetype из источника , ссылка на это руководство

$ tar -xvjf freetype-x.y.tar.bz2  # extract the downloaded version file
$ cd freetype-x.y/ 
$ ./configure
$ make
$ sudo make install 

перешел на virtualenv pip install matplotlibи все работает.

StackEdd
источник