Dépendances #
Dépendances d'exécution #
Dépendances obligatoires #
Lors de l'installation via un gestionnaire de packages comme pip
ou 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 #
LaTeX (avec cm-super et underscore ) et GhostScript (>= 9.0) : pour le rendu de texte avec LaTeX.
fontconfig (>= 2.7) : pour la détection des polices système sous Linux.
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.cfg
fichier 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.0Python 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.
gcc 4.8.1 ou supérieur
clang 3.3 ou supérieur
Visual Studio 2015 (alias VS 14.0) ou supérieur
Dépendances pour tester Matplotlib #
Cette section répertorie les logiciels supplémentaires requis pour exécuter les tests .
Obligatoire:
pytest (>= 3.6)
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.txt
et peuvent être installés à l'aide de
pip install -r requirements/doc/doc-requirements.txt
Le contenu de doc-requirements.txt
est é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
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é :
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.