Abhängigkeiten #

Laufzeitabhängigkeiten #

Obligatorische Abhängigkeiten #

Bei der Installation über einen Paketmanager wie pipoder condawerden die obligatorischen Abhängigkeiten automatisch installiert. Diese Liste dient hauptsächlich als Referenz.

Optionale Abhängigkeiten #

Die folgenden Pakete und Tools sind nicht erforderlich, erweitern aber die Fähigkeiten von Matplotlib.

Backends #

Matplotlib-Figuren können für verschiedene Benutzeroberflächen gerendert werden. Siehe Was ist ein Backend? Weitere Informationen zu den optionalen Matplotlib-Backends und den von ihnen bereitgestellten Funktionen finden Sie hier.

  • Tk (>= 8.4, != 8.6.0 oder 8.6.1): für die Tk-basierten Backends. Tk ist Teil der meisten Standard-Python-Installationen, aber nicht Teil von Python selbst und daher in seltenen Fällen möglicherweise nicht vorhanden.

  • PyQt6 (>= 6.1), PySide6 , PyQt5 oder PySide2 : für die Qt-basierten Backends.

  • PyGObject und pycairo (>= 1.14.0): für die GTK-basierten Backends. Bei Verwendung von pip (aber nicht conda oder system package manager) muss PyGObject aus der Quelle erstellt werden; siehe pygoobject-Dokumentation .

  • pycairo (>= 1.14.0) oder cairocffi (>= 0.8): für Kairo-basierte Backends.

  • wxPython (>= 4): für die wx-basierten Backends. Wenn Sie Pip (aber nicht Conda oder System Package Manager) unter Linux verwenden, müssen wxPython Wheels manuell von https://wxpython.org/pages/downloads/ heruntergeladen werden .

  • Tornado (>= 5): für das WebAgg-Backend.

  • ipykernel : für das nbagg-Backend.

  • macOS (>= 10.12): für das macosx-Backend.

Animationen #

Handhabung und Wiedergabe von Schriftarten #

C-Bibliotheken #

Matplotlib bringt eigene Kopien der folgenden Bibliotheken mit:

  • Agg: die C++-Rendering-Engine für Anti-Grain-Geometrie

  • ttconv: ein Dienstprogramm für TrueType-Schriftarten

Zusätzlich ist Matplotlib abhängig von:

  • FreeType (>= 2.3): eine Font-Rendering-Bibliothek

  • QHull (>= 2020.2): eine Bibliothek zur Berechnung von Triangulationen

Standardmäßig lädt Matplotlib herunter und erstellt seine eigenen Kopien von FreeType (dies ist notwendig, um die Testsuite auszuführen, da verschiedene Versionen von FreeType Zeichen unterschiedlich rastern) und von Qhull. Als Ausnahme verwendet Matplotlib standardmäßig die Systemversion von FreeType unter AIX.

Um Matplotlib zu zwingen, eine bereits auf Ihrem System installierte Kopie von FreeType oder Qhull zu verwenden, erstellen Sie eine mplsetup.cfgDatei mit folgendem Inhalt:

[libs]
system_freetype = true
system_qhull = true

vor dem Laufen .python -m pip install .

In diesem Fall müssen Sie die FreeType- und Qhull-Bibliothek und Header installieren. Dies kann mit einem Paketmanager erreicht werden, z. B. für 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

(für Qhull entsprechend anpassen).

Unter Linux und macOS wird außerdem empfohlen, pkg-config zu installieren , ein Hilfstool zum Auffinden von 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=...

Wenn Sie pkg-config nicht verwenden (insbesondere unter Windows), müssen Sie möglicherweise den Include-Pfad (zu den Bibliotheks-Headern) und den Link-Pfad (zu den Bibliotheken) explizit festlegen, wenn sie sich nicht an den Standardspeicherorten befinden. Dies kann mit Standard-Umgebungsvariablen erfolgen – unter Linux und OSX:

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

und unter Windows:

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

Wenn Sie diesen Weg gehen, aber zurücksetzen und neu erstellen müssen, um Ihre Einstellungen zu ändern, denken Sie daran, Ihre Artefakte vor dem Neuaufbau zu löschen:

git clean -xfd

Minimale Pip / Manylinux-Unterstützung (Linux) #

Matplotlib veröffentlicht viele Linux-Räder , die eine Mindestversion von Pip haben, die die Räder erkennt

  • Python 3.8: manylinx2010/ pip >= 19.0

  • Python 3.9+: manylinx2014/ pip >= 19.3

In allen Fällen ist die erforderliche Pip-Version in die CPython-Quelle eingebettet.

Abhängigkeiten zum Erstellen von Matplotlib #

Abhängigkeiten einrichten #

  • Zertifikat (>= 20.06.2020). Wird beim Herunterladen der Freetype- und QHull-Quelle während des Builds verwendet. Dies ist keine Laufzeitabhängigkeit.

  • setuptools_scm (>= 7). mpl.__version__Wird verwendet, um den Bericht basierend auf dem aktuellen Git-Commit zu aktualisieren . Auch eine Laufzeitabhängigkeit für bearbeitbare Installationen.

  • NumPy (>= 1,19). Auch eine Laufzeitabhängigkeit.

C++-Compiler #

Matplotlib erfordert einen C++-Compiler, der C++11 unterstützt.

Abhängigkeiten zum Testen von Matplotlib #

In diesem Abschnitt ist die zusätzliche Software aufgeführt, die zum Ausführen der Tests erforderlich ist .

Erforderlich:

Optional:

Zusätzlich zu allen optionalen Abhängigkeiten von der Hauptbibliothek werden zum Testen die folgenden verwendet, wenn sie installiert sind.

  • Ghostscript (>= 9.0, zum Rendern von PDF-Dateien)

  • Inkscape (zum Rendern von SVG-Dateien)

  • nbformat und nbconvert zum Testen des Notebook-Backends

  • pandas verwendet, um die Kompatibilität mit Pandas zu testen

  • pikepdf wird in einigen Tests für die pgf- und pdf-Backends verwendet

  • psutil , das beim Testen der interaktiven Backends verwendet wird

  • pytest-cov (>= 2.3.1) zum Sammeln von Abdeckungsinformationen

  • pytest-flake8 zum Testen von Codierungsstandards mit flake8

  • pytest-timeout , um die Laufzeit im Falle von festgefahrenen Tests zu begrenzen

  • pytest-xdist , um Tests parallel auszuführen

  • pytest-xvfb zum Ausführen von Tests, ohne dass Fenster auftauchen (Linux)

  • pytz zum Testen von pytz int

  • sphinx verwendet, um unsere Sphinx-Erweiterungen zu testen

  • WenQuanYi Zen Hei und Noto Sans CJK -Schriftarten zum Testen von Fallback-Schriftarten und nicht-westlichen Schriftarten

  • xarray wird verwendet, um die Kompatibilität mit xarray zu testen

Wenn eine dieser Abhängigkeiten nicht entdeckt wird, werden die darauf basierenden Tests von pytest übersprungen.

Notiz

Stellen Sie bei der Installation von Inkscape unter Windows sicher, dass Sie „Inkscape zum Systempfad hinzufügen“ auswählen, entweder für alle Benutzer oder für den aktuellen Benutzer, oder die Tests werden es nicht finden.

Abhängigkeiten zum Erstellen der Matplotlib-Dokumentation #

Python-Pakete #

Die zusätzlichen Python-Pakete, die zum Erstellen der Dokumentation erforderlich sind, sind in aufgeführt doc-requirements.txtund können mit installiert werden

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

Der Inhalt von doc-requirements.txtwird auch unten angezeigt:

# 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

Zusätzliche externe Abhängigkeiten #

Erforderlich:

  • eine minimal funktionierende LaTeX-Distribution

  • Graphviz

  • die folgenden LaTeX-Pakete (wenn Ihr Betriebssystem TeXLive bündelt, enthält die "vollständige" Version des Installationsprogramms, z. B. "texlive-full" oder "texlive-all", diese Pakete oft automatisch):

Optional, aber empfohlen:

  • Inkscape

  • Option

  • die Schriftart „Humor Sans“ (alias die „XKCD“-Schriftart) oder die kostenlose Alternative Comic Neue

  • die Schriftart "Times New Roman"

Notiz

Die Dokumentation wird ohne LaTeX und Graphviz nicht erstellt. Dies sind keine Python-Pakete und müssen separat installiert werden. Die Dokumentation kann ohne Inkscape und optipng erstellt werden, aber der Erstellungsprozess wird verschiedene Warnungen auslösen. Wenn der Build-Prozess warnt, dass Ihnen Schriftarten fehlen, stellen Sie sicher, dass Ihre LaTeX-Distribution cm-super bündelt, oder installieren Sie es separat.