Abhängigkeiten #
Laufzeitabhängigkeiten #
Obligatorische Abhängigkeiten #
Bei der Installation über einen Paketmanager wie pip
oder conda
werden die obligatorischen Abhängigkeiten automatisch installiert. Diese Liste dient hauptsächlich als Referenz.
Python (>= 3.8)
Konturpy (>= 1.0.1)
Cycler (>= 0.10.0)
dateutil (>= 2.7)
FontTools (>= 4.22.0)
kiwisolver (>= 1.0.1)
NumPy (>= 1,19)
Verpackung (>= 20,0)
Kopfkissen (>= 6,2)
pyparsing (>= 2.2.1)
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 #
ffmpeg : zum Speichern von Filmen.
ImageMagick : zum Speichern animierter Gifs.
Handhabung und Wiedergabe von Schriftarten #
LaTeX (mit cm-super und underscore ) und GhostScript (>= 9.0) : zum Rendern von Text mit LaTeX.
fontconfig (>= 2.7): zur Erkennung von Systemfonts unter Linux.
C-Bibliotheken #
Matplotlib bringt eigene Kopien der folgenden Bibliotheken mit:
Agg
: die C++-Rendering-Engine für Anti-Grain-Geometriettconv
: 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.cfg
Datei 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.0Python 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.
gcc 4.8.1 oder höher
clang 3.3 oder höher
Visual Studio 2015 (auch bekannt als VS 14.0) oder höher
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:
pytest (>= 3.6)
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)
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.txt
und können mit 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 -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
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:
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.