Dépendances #

Dépendances d'exécution #

Dépendances obligatoires #

Lors de l'installation via un gestionnaire de packages comme pipou conda, les dépendances obligatoires sont automatiquement installées. Cette liste est principalement à titre indicatif.

Dépendances facultatives #

Les packages et outils suivants ne sont pas requis mais étendent les capacités de Matplotlib.

Backends #

Les chiffres Matplotlib peuvent être rendus à diverses interfaces utilisateur. Voir Qu'est-ce qu'un backend ? pour plus de détails sur les backends Matplotlib facultatifs et les fonctionnalités qu'ils offrent.

  • Tk (>= 8.4, != 8.6.0 ou 8.6.1) : pour les backends basés sur Tk. Tk fait partie de la plupart des installations Python standard, mais il ne fait pas partie de Python lui-même et peut donc ne pas être présent dans de rares cas.

  • PyQt6 (>= 6.1), PySide6 , PyQt5 ou PySide2 : pour les backends basés sur Qt.

  • PyGObject et pycairo (>= 1.14.0) : pour les backends basés sur GTK. Si vous utilisez pip (mais pas conda ou le gestionnaire de packages système), PyGObject doit être construit à partir de la source ; voir la documentation de pygobject .

  • pycairo (>= 1.14.0) ou cairocffi (>= 0.8) : pour les backends basés sur cairo.

  • wxPython (>= 4) : pour les backends basés sur wx. Si vous utilisez pip (mais pas conda ou gestionnaire de packages système) sur Linux, les roues wxPython doivent être téléchargées manuellement à partir de https://wxpython.org/pages/downloads/ .

  • Tornado (>= 5) : pour le backend WebAgg.

  • ipykernel : pour le backend nbagg.

  • macOS (>= 10.12) : pour le backend macosx.

Animations #

  • ffmpeg : pour enregistrer des films.

  • ImageMagick : pour enregistrer des gifs animés.

Gestion et rendu des polices #

Bibliothèques C #

Matplotlib apporte ses propres copies des bibliothèques suivantes :

  • Agg: le moteur de rendu Anti-Grain Geometry C++

  • ttconv: un utilitaire de police TrueType

De plus, Matplotlib dépend de :

  • FreeType (>= 2.3) : une bibliothèque de rendu de polices

  • QHull (>= 2020.2) : une bibliothèque de calcul de triangulations

Par défaut, Matplotlib télécharge et construit ses propres copies de FreeType (cela est nécessaire pour exécuter la suite de tests, car différentes versions de FreeType pixellisent les caractères différemment) et de Qhull. Exceptionnellement, Matplotlib utilise par défaut la version système de FreeType sur AIX.

Pour forcer Matplotlib à utiliser une copie de FreeType ou Qhull déjà installée sur votre système, créez un mplsetup.cfgfichier avec le contenu suivant :

[libs]
system_freetype = true
system_qhull = true

avant de courir .python -m pip install .

Dans ce cas, vous devez installer la bibliothèque et les en-têtes FreeType et Qhull. Ceci peut être réalisé en utilisant un gestionnaire de packages, par exemple pour FreeType :

# Pick ONE of the following:
sudo apt install libfreetype6-dev  # Debian/Ubuntu
sudo dnf install freetype-devel    # Fedora
brew install freetype              # macOS with Homebrew
conda install freetype             # conda, any OS

(adapter en conséquence pour Qhull).

Sous Linux et macOS, il est également recommandé d'installer pkg-config , un outil d'aide pour localiser FreeType :

# Pick ONE of the following:
sudo apt install pkg-config  # Debian/Ubuntu
sudo dnf install pkgconf     # Fedora
brew install pkg-config      # macOS with Homebrew
conda install pkg-config     # conda
# Or point the PKG_CONFIG environment variable to the path to pkg-config:
export PKG_CONFIG=...

Si vous n'utilisez pas pkg-config (en particulier sous Windows), vous devrez peut-être définir explicitement le chemin d'inclusion (vers les en-têtes de bibliothèque) et le chemin du lien (vers les bibliothèques), s'ils ne se trouvent pas dans des emplacements standard. Cela peut être fait en utilisant des variables d'environnement standard -- sous Linux et OSX :

export CFLAGS='-I/directory/containing/ft2build.h'
export LDFLAGS='-L/directory/containing/libfreetype.so'

et sous Windows :

set CL=/IC:\directory\containing\ft2build.h
set LINK=/LIBPATH:C:\directory\containing\freetype.lib

Si vous suivez cette voie mais que vous devez réinitialiser et reconstruire pour modifier vos paramètres, n'oubliez pas d'effacer vos artefacts avant de reconstruire :

git clean -xfd

Prise en charge minimale de pip / manylinux (linux) #

Matplotlib publie de nombreuses roues Linux qui ont une version minimale de pip qui reconnaîtra les roues

  • Python 3.8 : manylinx2010/pip >= 19.0

  • Python 3.9+ : manylinx2014/ pip >= 19.3

Dans tous les cas, la version requise de pip est intégrée dans la source CPython.

Dépendances pour construire Matplotlib #

Configurer les dépendances #

  • certificat (>= 2020.06.20). Utilisé lors du téléchargement de la source freetype et QHull pendant la construction. Ce n'est pas une dépendance d'exécution.

  • setuptools_scm (>= 7). Utilisé pour mettre à jour le rapport mpl.__version__en fonction du commit git actuel. Également une dépendance d'exécution pour les installations modifiables.

  • NumPy (>= 1.19). Également une dépendance d'exécution.

Compilateur C++ #

Matplotlib nécessite un compilateur C++ prenant en charge C++11.

Dépendances pour tester Matplotlib #

Cette section répertorie les logiciels supplémentaires requis pour exécuter les tests .

Obligatoire:

Optionnel:

En plus de toutes les dépendances facultatives sur la bibliothèque principale, pour tester les éléments suivants seront utilisés s'ils sont installés.

  • Ghostscript (>= 9.0, pour rendre les fichiers PDF)

  • Inkscape (pour rendre les fichiers SVG)

  • nbformat et nbconvert utilisés pour tester le backend du notebook

  • pandas utilisé pour tester la compatibilité avec Pandas

  • pikepdf utilisé dans certains tests pour les backends pgf et pdf

  • psutil utilisé pour tester les backends interactifs

  • pytest-cov (>= 2.3.1) pour collecter des informations sur la couverture

  • pytest-flake8 pour tester les normes de codage à l'aide de flake8

  • pytest-timeout pour limiter le temps d'exécution en cas de tests bloqués

  • pytest-xdist pour exécuter des tests en parallèle

  • pytest-xvfb pour exécuter des tests sans fenêtres pop-up (Linux)

  • pytz utilisé pour tester pytz int

  • sphinx utilisé pour tester nos extensions de sphinx

  • Polices WenQuanYi Zen Hei et Noto Sans CJK pour tester les polices de secours et les polices non occidentales

  • xarray utilisé pour tester la compatibilité avec xarray

Si l'une de ces dépendances n'est pas découverte, les tests qui en dépendent seront ignorés par pytest.

Noter

Lors de l'installation d'Inkscape sur Windows, assurez-vous de sélectionner "Ajouter Inkscape au système PATH", soit pour tous les utilisateurs, soit pour l'utilisateur actuel, sinon les tests ne le trouveront pas.

Dépendances pour la construction de la documentation de Matplotlib #

Paquets Python #

Les packages Python supplémentaires requis pour créer la documentation sont répertoriés dans doc-requirements.txtet peuvent être installés à l'aide de

pip install -r requirements/doc/doc-requirements.txt

Le contenu de doc-requirements.txtest également affiché ci-dessous :

# Requirements for building docs
#
# You will first need a matching Matplotlib installation
# e.g (from the Matplotlib root directory)
#     pip install -e .
#
# Install the documentation requirements with:
#     pip install -r requirements/doc/doc-requirements.txt
#
sphinx>=3.0.0
colorspacious
ipython
ipywidgets
numpydoc>=1.0
packaging>=20
pydata-sphinx-theme>=0.9.0
mpl-sphinx-theme~=3.6.0
sphinxcontrib-svg2pdfconverter>=1.1.0
sphinx-gallery>=0.10
sphinx-copybutton
sphinx-design

Dépendances externes supplémentaires #

Obligatoire:

  • une distribution LaTeX fonctionnelle minimale

  • Graphviz

  • les packages LaTeX suivants (si votre système d'exploitation contient TeXLive, la version "complète" du programme d'installation, par exemple "texlive-full" ou "texlive-all", inclura souvent automatiquement ces packages) :

Facultatif, mais recommandé :

  • Inkscape

  • opter

  • la police "Humour Sans" (alias la police "XKCD"), ou l'alternative gratuite Comic Neue

  • la police "Times New Roman"

Noter

La documentation ne se construira pas sans LaTeX et Graphviz. Ce ne sont pas des packages Python et doivent être installés séparément. La documentation peut être construite sans Inkscape et optipng, mais le processus de construction déclenchera divers avertissements. Si le processus de construction vous avertit qu'il vous manque des polices, assurez-vous que votre distribution LaTeX contient cm-super ou installez-la séparément.