web-dev-qa-db-fra.com

Installation de matplotlib et de ses dépendances sans privilèges root

Je veux utiliser matplotlib sur un serveur sur lequel j'ai un compte /myhome sans privilèges root.

J'ai téléchargé les sources de matplotlib et essayé de l'installer à l'aide de distutils avec l'utilisateur sheme, disons python setup.py install --user, mais le message suivant a été renvoyé:

============================================================================
Edit setup.cfg to change the build options

BUILDING MATPLOTLIB
        matplotlib: yes [1.3.1]
            python: yes [2.7.3 (default, Jan  2 2013, 13:56:14)  [GCC
                    4.7.2]]
          platform: yes [linux2]

REQUIRED DEPENDENCIES AND EXTENSIONS
             numpy: yes [version 1.6.2]
          dateutil: yes [using dateutil version 1.5]
           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.]
               png: yes [pkg-config information for 'libpng' could not
                    be found. Using unknown version.]

OPTIONAL SUBPACKAGES
       sample_data: yes [installing]
          toolkits: yes [installing]
             tests: yes [nose 0.11.1 or later is required to run the
                    matplotlib test suite]

OPTIONAL BACKEND EXTENSIONS
            macosx: no  [Mac OS-X only]
            qt4agg: yes [installing, Qt: 4.8.2, PyQt4: 4.9.3]
           gtk3agg: yes [installing, version 3.2.4]
         gtk3cairo: yes [installing, version 3.2.4]
            gtkagg: no  [The C/C++ header for gtk (gtk/gtk.h) could not
                    be found.  You may need to install the development
                    package.]
             tkagg: no  [TKAgg requires Tkinter.]
             wxagg: no  [requires wxPython]
               gtk: no  [The C/C++ header for gtk (gtk/gtk.h) could not
                    be found.  You may need to install the development
                    package.]
               agg: yes [installing]
             cairo: yes [installing, version 1.8.8]
         windowing: no  [Microsoft Windows only]

OPTIONAL LATEX DEPENDENCIES
            dvipng: yes [version 1.14]
       ghostscript: yes [version 9.05]
             latex: yes [version 3.1415926]
           pdftops: yes [version 0.18.4]

============================================================================
                    * The following required packages can not be built:
                    * freetype

Il semblait que le paquet 'freetype' était manquant, alors j'ai téléchargé ses sources et j'ai découvert qu'il pouvait être installé à un endroit spécifique en exécutant:

./configure --prefix=/myhome/somedir
make
make install

Ma question est la suivante: où dois-je installer freetype pour qu’il puisse être détecté par distutils?

Ma première pensée a été de l’installer dans /myhome/.local car c’est là que distutils installe un module lorsqu’il utilise l’option --user. Malheureusement, lors de cette opération, j’ai toujours reçu le même message que ci-dessus.

J'ai essayé quelque chose de plus compliqué en créant un environnement virtuel en utilisant le paquet virtualenv:

virtualenv /myhome/venv/

Ensuite, j’ai installé freetype dans myhome/venv/ et enfin, j’ai exécuté les distutils dans cet environnement virtuel, mais cela m’a renvoyé le même message.

Merci de votre aide et, bien sûr, je ne demanderai pas à mon administrateur système d’installer Matplotlib pour moi. 

PS: quelque chose qui n'a certes aucun lien avec mon problème mais qui mérite d'être noté: j'installe le paquet freetype en utilisant ./configure --prefix=/myhome/somedir --without-png. Sans l'option --without-png, j'obtiens l'erreur suivante:

checking for libpng... configure: error: `libpng-config' not found;
either set the LIBPNG_CFLAGS and LIBPNG_LDFLAGS environment variables,
or pass `--without-png' to the `configure' script.
12
user3156933

Vous devez installer la configuration système requise, et cela n’est pas lié à python, pip, virtualenv.

Pour installer la configuration requise, veuillez vous référer à ceci. https://stackoverflow.com/a/20533455/2962018

En un mot,

Ubuntu/Debian

apt-get install libfreetype6-dev

Chapeau rouge

yum -y install freetype-devel

OSX

brew install freetype

Après avoir installé freetype, essayez

pip install matplotlib
8
MiaeKim

Sur la base de quelques suggestions ici et d'autres instructions sur Internet, la recette suivante a fonctionné pour moi:

 wget http://download.savannah.gnu.org/releases/freetype/freetype-2.5.3.tar.gz
 tar xzf freetype-2.5.3.tar.gz
 cd freetype-2.5.3
 ./configure --prefix=/myhome/local --without-png
 make && make install
 export PKG_CONFIG_PATH=/myhome/local/lib/pkgconfig
 pip install matplotlib --upgrade
8
user1994702

D'après ce que je peux voir, la configuration de matplot finira par appeler l'invite avec

pkg-config freetype2 --modversion 

essayer de trouver le paquet. Il semble que cela échoue lors de cet appel.

Essayez de voir quelle erreur cette commande vous donne et dites-le nous. Voir http://people.freedesktop.org/~dbn/pkg-config-guide.html pour plus d'informations sur pkg-config. Sur certains systèmes, il est possible que pkg-config ne soit pas installé.

UPDATE: D'après ce que je peux obtenir des fichiers d'installation de matplotlib, il cherchera ft2build.h dans les sous-répertoires include, lib et lib64 dans les répertoires/usr/local et dans/usr. 

Vous pouvez trouver les fichiers sources nécessaires pour freetype à l’adresse http://www.freetype.org/developer.html (vous aurez besoin des fichiers .h, mais cela ne fera pas de mal de tous les obtenir).

Si vous n'avez pas accès à l'un de ces répertoires, vous pouvez ajouter des répertoires à rechercher en modifiant l'entrée des répertoires dans setup.cfg pour matplotlib.

Si vous ne pouvez pas modifier le fichier setup.cfg, vous pouvez également essayer de le modifier directement dans votre répertoire matplotlib. À la ligne 95, il existe une fonction get_base_dirs, vous pouvez modifier cette fonction pour renvoyer des répertoires supplémentaires dans lesquels elle effectuera une recherche (elle recherchera les sous-répertoires include, lib et lib64 dans ces répertoires ajoutés).

7
HSquirrel

Peut-être très tard maintenant, mais je viens de faire face au même problème lors de l'installation de matplotlib dans virtualenv créé à l'aide de virtualenvwrapper.

Ces instructions ont fonctionné pour moi: http://newcoder.io/dataviz/part-0/

3
Deep

Plus précisément pour mac: J'ai eu un problème similaire lors de l'installation de matplotlib. Suivez ces instructions et vous avez terminé:

  1. Installez python3 en utilisant une infusion. (Ignorez cette étape si vous l'avez déjà) Remarque: Pour installer l'infusion.

    brew install python3
    
  2. Installer freetype:

    brew install freetype
    
  3. Maintenant, installez pkg-config en utilisant pip3:

    brew install pkg-confi
    
  4. Enfin, installez matplotlib:

    Sudo pip3 install matplotlib
    
1
Kripson21

J'ai eu la même erreur lors de l'installation de matplotlib. L'installation de pkg-config a fonctionné pour moi. Essayez la commande suivante pour Ubuntu: 

Sudo apt-get install pkg-config
0
amulya349