Ubuntu exécutant `pip install` donne l'erreur 'Les packages requis suivants ne peuvent pas être compilés: * freetype'

145

Lors de l'exécution pip install -r requirements.txt, j'obtiens l'erreur suivante au cours de l'étape d'installation 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

Ne devrait-il pas pip install -r requirements.txtégalement installer freetype? Comment freetype doit-il être installé dans Ubuntu 12.04 pour qu'il fonctionne avec matplotlib?

Athéna Sagesse
la source

Réponses:

221

No. pipn'installe pas les dépendances au niveau du système. Cela signifie pipn'installe pas les RPM ( systèmes basés sur Redhat ) ou les DEB ( systèmes basés sur Debian ).

Pour installer les dépendances système, vous devrez utiliser l'une des méthodes suivantes en fonction de votre système.

Ubuntu / Debian:

apt-get install libfreetype6-dev

Pour rechercher des paquets sur des systèmes basés sur Ubuntu / Debian:

apt-cache search <string>

par exemple:

apt-cache search freetype | grep dev

Redhat / CentOS / Fedora:

yum -y install freetype-devel

Pour rechercher des packages sur des systèmes basés sur Redhat / CentOS / Fedora:

yum search <string>

par exemple:

yum search freetype | grep devel

Mac OS X: ( via Homebrew )

brew install freetype

Pour rechercher des packages sur les systèmes Mac OS X:

brew search <string>

par exemple:

brew search freetype
James Mills
la source
Désolé, ça s'appelle freetype2ces jours-ci. Actualisé.
James Mills
apt-get install freetype2-develdonne la même erreur aussi ... Serait-ce possible apt-get install freetype*? Cela semble vouloir installer de nombreux autres paquets
Athena Wisdom
Cela fonctionnera probablement aussi :) Désolé, je crois que cela s'appelle libfreetype2-devel. Je vais mettre à jour ma réponse à nouveau: /
James Mills
2
Je pense que la -develconvention est pour RPM et la -devconvention est pour DEB. Essayez apt-cache search '^libfreetype.*-dev$'ce qui donne libfreetype6-dev.
Dietrich Epp
9
fwiw, brew install freetypem'a aidé sur OSX
Nate
144

J'ai dû installer libxft-dev pour activer matplotlib sur le serveur ubuntu 14.04.

sudo apt-get install libfreetype6-dev libxft-dev

Et puis je pourrais utiliser

sudo easy_install matplotlib
Sudipta Basak
la source
10
Sur Ubuntu 12.04 LTS, j'avais également besoin d'installer libxft-dev. Merci pour cette information supplémentaire
toom
3
Pourquoi ne pas utiliser directement sudo apt-get install python-matplotlib comme recommandé ici: matplotlib.org/users/installing.html
Timo
2
J'avais déjà installé libfreetype6-dev. Cela m'a aidé sur Ubuntu 14.10, merci!
wim
4
le truc libxft-dev est ce qui l'a fait pour moi! Merci!
TerminalDilettante
10
Apparemment, la vraie dépendance ici est pkg-config, qui libxft-devs'installe également en tant que dépendance. Donc, la bonne réponse serait de courirapt-get install libfreetype6-dev pkg-config
Carles Sala
28

Une solution de contournement consiste à faire sudo apt-get install pkg-configce que j'ai trouvé dans ce problème github .

pas déroutant
la source
3
L'installation pkg-configétait également l'étape non intuitive manquante pour moi, ceci lors de l'installation matplotlibdans un conteneur de docker avec ubuntu:14.04comme image de base.
SlimJim
Cela a également résolu le problème pour moi également sur une machine virtuelle virtualbox. Il semble que pkg-configce soit ce qui est nécessaire pour les installations de machines virtuelles.
Alma
6

Aucune des réponses existantes n'a fonctionné pour moi pour mettre à niveau matplotlib sur Ubuntu. C'est ce qui fonctionne finalement pour moi:

$ sudo apt-get install build-dep python-matplotlib
$ pip install matplotlib --upgrade
PaulMest
la source
6

Cette commande téléchargera toutes les dépendances.

Pour python 2.x

sudo apt-get install python-matplotlib

Pour python 3.x

sudo apt-get install python3-matplotlib

Après l'installation, vous pouvez essayer

(sudo) pip install matplotlib
MiaeKim
la source
4

Sur Ubuntu, cela a fonctionné après l'installation du blt-devpackage.

$sudo apt-get install blt-dev
$pip install matplotlib
Caleb Kiage
la source
blt-dev doit apt-get install libfreetype6-devs'exécuter pour être automatiquement installé avec blt-dev.
Tristan
1

J'utilise Mint et aucune de ces réponses n'a fonctionné pour moi, je devais:

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

J'ai eu le même problème avec Python 3.6 sous Windows, mais je suis ensuite passé à Python 3.5.2 et tout fonctionne bien.

Klimenkov
la source
0

Cette commande a sudo apt-get install libfreetype6-devéchoué pour moi sur 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

J'ai donc téléchargé freetype installé à partir de la source , crédit à ce guide

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

passé à virtualenv et pip install matplotlibet tout fonctionne.

StackEdd
la source