Abhängigkeiten#
Laufzeitabhängigkeiten#
Erforderlich#
Bei der Installation über einen Paketmanager wie pip oder conda werden die zwingend erforderlichen Abhängigkeiten automatisch installiert. Diese Liste dient hauptsächlich zur Referenz.
Optional#
Die folgenden Pakete und Werkzeuge sind nicht erforderlich, erweitern aber die Fähigkeiten von Matplotlib.
Backends#
Matplotlib-Figuren können in verschiedene Benutzeroberflächen gerendert werden. Weitere Details zu den optionalen Matplotlib-Backends und deren Funktionen finden Sie unter Was ist ein Backend?.
Tk (>= 8.5, != 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 (>= 5.12) 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 einem System-Paketmanager) muss PyGObject aus dem Quellcode kompiliert werden. Weitere Informationen finden Sie in der pygobject-Dokumentation.
pycairo (>= 1.14.0) oder cairocffi (>= 0.8): für cairo-basierte Backends.
wxPython (>= 4): für die wx-basierten Backends. Bei Verwendung von pip (aber nicht conda oder einem System-Paketmanager) unter Linux 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#
ffmpeg: zum Speichern von Videos.
ImageMagick: zum Speichern von animierten GIFs.
Schriftartbehandlung und -darstellung#
LaTeX (mit cm-super und underscore) und GhostScript (>= 9.0): zum Rendern von Text mit LaTeX.
fontconfig (>= 2.7): zur Erkennung von Systemschriften unter Linux.
C-Bibliotheken#
Matplotlib bringt eigene Kopien der folgenden Bibliotheken mit
Agg: die Anti-Grain Geometry C++ Rendering-Enginettconv: ein TrueType-Schriftart-Dienstprogramm
Zusätzlich ist Matplotlib auf Folgendes angewiesen:
FreeType (>= 2.3): eine Schriftart-Rendering-Bibliothek
QHull (>= 8.0.2): eine Bibliothek zur Berechnung von Triangulierungen (beachten Sie, dass diese Version auch als 2020.2 bekannt ist)
Download während der Installation#
Standardmäßig lädt Matplotlib eigene Kopien von Qhull und FreeType herunter und baut sie. Die eingebundene Version von FreeType ist notwendig, um die Testsuite auszuführen, da verschiedene Versionen von FreeType Zeichen unterschiedlich rendern.
Systembibliotheken verwenden#
Um Matplotlib zu zwingen, eine bereits in Ihrem System installierte Kopie von FreeType oder Qhull zu verwenden, müssen Sie Konfigurationseinstellungen über meson-python an Meson übergeben
python -m pip install \
--config-settings=setup-args="-Dsystem-freetype=true" \
--config-settings=setup-args="-Dsystem-qhull=true" \
.
In diesem Fall müssen Sie die FreeType- und Qhull-Bibliothek sowie die Header installieren. Dies kann über einen Paketmanager erfolgen, 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
(entsprechend für Qhull anpassen).
Unter Linux und macOS wird außerdem empfohlen, pkg-config zu installieren, ein Hilfsprogramm 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 explizit den Include-Pfad (zu den Bibliotheksheadern) und den Link-Pfad (zu den Bibliotheken) festlegen, falls diese nicht an Standardorten vorhanden sind. Dies kann über Standardumgebungsvariablen erfolgen – unter Linux und macOS
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 erneuten Erstellen zu löschen.
git clean -xfd
Aus Quelldateien#
Wenn der automatische Download nicht funktioniert (z. B. auf luftdichten Systemen), ist es vorzuziehen, stattdessen Systembibliotheken zu verwenden. Sie können jedoch die Tarballs manuell in subprojects/packagecache im obersten Verzeichnis des Checkout-Repositorys herunterladen. Die erwarteten SHA256-Hashes der heruntergeladenen Tarballs befinden sich in subprojects/*.wrap, wenn Sie diese verifizieren möchten, aber sie werden auch vom Build-System vor dem Entpacken überprüft.
Minimale pip / manylinux-Unterstützung (Linux)#
Matplotlib veröffentlicht manylinux-Wheels, die eine Mindestversion von pip haben, die die Wheels erkennt.
Python 3.9+:
manylinux2014/ pip >= 19.3
In allen Fällen ist die erforderliche pip-Version in der CPython-Quelle eingebettet.
Build-Abhängigkeiten#
Python#
pip baut Pakete normalerweise unter Verwendung von Build-Isolation, was bedeutet, dass pip die hier aufgeführten Abhängigkeiten für die Dauer des Build-Prozesses installiert. Die Build-Isolation wird jedoch über die Option --no-build-isolation deaktiviert, wenn Matplotlib für die Entwicklung installiert wird. Das bedeutet, dass die Abhängigkeiten explizit installiert werden müssen, entweder durch Erstellung einer virtuellen Umgebung (empfohlen) oder durch manuelle Installation der folgenden Pakete
meson-python (>= 0.13.1).
ninja (>= 1.8.2). Dies ist möglicherweise in Ihrem Paketmanager verfügbar oder wird mit Meson gebündelt, kann aber über
pipinstalliert werden, wenn es anderweitig nicht verfügbar ist.PyBind11 (>= 2.13.2). Wird verwendet, um C/C++-Code mit Python zu verbinden.
setuptools_scm (>= 7). Wird verwendet, um die gemeldete
mpl.__version__basierend auf dem aktuellen Git-Commit zu aktualisieren. Ebenfalls eine Laufzeitabhängigkeit für editierbare Installationen.NumPy (>= 1.22). Ebenfalls eine Laufzeitabhängigkeit.
Kompilierte Erweiterungen#
Matplotlib benötigt einen C++-Compiler, der C++17 unterstützt, und jede Plattform verfügt über eine Entwicklungsumgebung, die installiert werden muss, bevor ein Compiler installiert werden kann. Möglicherweise müssen Sie auch Header für verschiedene Bibliotheken installieren, die in den Quelldateien der kompilierten Erweiterungen verwendet werden.
Auf einigen Linux-Systemen können Sie ein Meta-Build-Paket installieren. Zum Beispiel unter Ubuntu apt install build-essential mit erhöhten Rechten.
Andernfalls verwenden Sie den Paketmanager Ihrer Systemdistribution, um gcc zu installieren.
Installieren Sie Xcode für die Entwicklung auf Apple-Plattformen.
Installieren Sie Visual Studio Build Tools
Stellen Sie sicher, dass "Desktopentwicklung mit C++" ausgewählt ist und dass die neuesten MSVC, "C++ CMake-Tools für Windows" und ein Windows SDK, das mit Ihrer Windows-Version kompatibel ist, ausgewählt und installiert sind. Diese sollten standardmäßig unter der Unterüberschrift "Optional" ausgewählt sein, sind aber zum Erstellen von Matplotlib aus dem Quellcode erforderlich.
Alternativ können Sie eine Linux-ähnliche Umgebung wie CygWin oder Windows Subsystem for Linux installieren. Bei Verwendung von MinGW-64 benötigen wir **Version 6** der `Mingw-w64-x86_64-headers.
Wir empfehlen dringend, einen Compiler über Ihr Plattformwerkzeug zu installieren, d. h. Xcode, VS Code oder den Linux-Paketmanager. Wählen Sie **einen** Compiler aus dieser Liste aus.
Compiler |
Mindestversion |
Plattformen |
Notizen |
|---|---|---|---|
GCC |
7.2 |
Linux, macOS, Windows |
|
Clang (LLVM) |
5 |
Linux, macOS |
|
MSVC++ |
16.0 |
Windows |
Testabhängigkeiten#
Dieser Abschnitt listet die zusätzliche Software auf, die für das Ausführen der Tests erforderlich ist.
Erforderlich#
pytest (>= 7.0.0)
Optional#
Zusätzlich zu allen optionalen Abhängigkeiten der Hauptbibliothek werden die folgenden Elemente für Tests verwendet, falls sie installiert sind.
Python#
Diese Pakete werden bei der Erstellung einer virtuellen Umgebung installiert, andernfalls müssen sie manuell installiert werden
nbformat und nbconvert, die zum Testen des Notebook-Backends verwendet werden.
pandas, das zum Testen der Kompatibilität mit Pandas verwendet wird.
pikepdf, das in einigen Tests für die pgf- und pdf-Backends verwendet wird.
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 zur Begrenzung der Laufzeit bei hängenden Tests.
pytest-xdist zum parallelen Ausführen von Tests.
pytest-xvfb zum Ausführen von Tests ohne aufpoppende Fenster (Linux).
pytz, das zum Testen von pytz-Int verwendet wird.
sphinx, das zum Testen unserer Sphinx-Erweiterungen verwendet wird.
xarray, das zum Testen der Kompatibilität mit xarray verwendet wird.
Externe Werkzeuge#
Ghostscript (>= 9.0, zum Rendern von PDF-Dateien)
Inkscape (zum Rendern von SVG-Dateien)
Schriftarten WenQuanYi Zen Hei und Noto Sans CJK zum Testen von Schriftart-Fallback und nicht-westlichen Schriftarten.
Wenn eine dieser Abhängigkeiten nicht gefunden wird, werden die Tests, die auf ihr basieren, von pytest übersprungen.
Hinweis
Bei der Installation von Inkscape unter Windows stellen Sie sicher, dass Sie "Inkscape zum System-PATH hinzufügen" auswählen, entweder für alle Benutzer oder für den aktuellen Benutzer, andernfalls finden die Tests es nicht.
Dokumentationsabhängigkeiten#
Python#
Die zusätzlichen Python-Pakete, die zum Erstellen der Dokumentation erforderlich sind, sind in doc-requirements.txt aufgeführt und können mit folgendem Befehl installiert werden:
pip install -r requirements/doc/doc-requirements.txt
Der Inhalt von doc-requirements.txt wird auch unten angezeigt
# Requirements for building docs
#
# You will first need a matching Matplotlib installation
# e.g (from the Matplotlib root directory)
# pip install --no-build-isolation --editable .[dev]
#
# Install the documentation requirements with:
# pip install -r requirements/doc/doc-requirements.txt
#
sphinx>=5.1.0,!=6.1.2
colorspacious
ipython
ipywidgets
ipykernel
numpydoc>=1.0
packaging>=20
pydata-sphinx-theme~=0.15.0
mpl-sphinx-theme~=3.9.0
pyyaml
PyStemmer
sphinxcontrib-svg2pdfconverter>=1.1.0
sphinxcontrib-video>=0.2.1
sphinx-copybutton
sphinx-design
sphinx-gallery[parallel]>=0.12.0
sphinx-tags>=0.4.0
Externe Werkzeuge#
Erforderlich#
Die Dokumentation benötigt LaTeX und Graphviz. Dies sind keine Python-Pakete und müssen separat installiert werden.
Die folgenden LaTeX-Pakete
collection-fonts (empfohlen)
Die vollständige Version vieler LaTeX-Distributionsinstaller, z. B. "texlive-full" oder "texlive-all", enthält diese Pakete oft automatisch.
Optional#
Die Dokumentation kann ohne Inkscape und optipng erstellt werden, aber der Erstellungsprozess wird verschiedene Warnungen ausgeben.
die Schriftart xkcd script oder Comic Neue
die Schriftart "Times New Roman"