Dipendenze #

Dipendenze di runtime #

Dipendenze obbligatorie #

Quando si installa tramite un gestore di pacchetti come pipo conda, le dipendenze obbligatorie vengono installate automaticamente. Questo elenco è principalmente per riferimento.

Dipendenze facoltative #

I seguenti pacchetti e strumenti non sono richiesti ma estendono le capacità di Matplotlib.

Backend n.

Le figure Matplotlib possono essere visualizzate su varie interfacce utente. Vedi Cos'è un back-end? per maggiori dettagli sui backend Matplotlib facoltativi e sulle funzionalità che forniscono.

  • Tk (>= 8.4, != 8.6.0 o 8.6.1): per i backend basati su Tk. Tk fa parte della maggior parte delle installazioni Python standard, ma non fa parte di Python stesso e quindi potrebbe non essere presente in rari casi.

  • PyQt6 (>= 6.1), PySide6 , PyQt5 o PySide2 : per i backend basati su Qt.

  • PyGObject e pycairo (>= 1.14.0): per i backend basati su GTK. Se si utilizza pip (ma non conda o gestore di pacchetti di sistema) PyGObject deve essere compilato dal sorgente; vedere la documentazione di pygobject .

  • pycairo (>= 1.14.0) o cairocffi (>= 0.8): per backend basati su cairo.

  • wxPython (>= 4): per i backend basati su wx. Se si utilizza pip (ma non conda o gestore di pacchetti di sistema) su Linux, le ruote wxPython devono essere scaricate manualmente da https://wxpython.org/pages/downloads/ .

  • Tornado (>= 5): per il backend WebAgg.

  • ipykernel : per il backend nbagg.

  • macOS (>= 10.12): per il backend macosx.

Animazioni #

Gestione e rendering dei caratteri #

Librerie C #

Matplotlib porta le proprie copie delle seguenti librerie:

  • Agg: il motore di rendering Anti-Grain Geometry C++

  • ttconv: un'utilità per i caratteri TrueType

Inoltre, Matplotlib dipende da:

  • FreeType (>= 2.3): una libreria per il rendering dei caratteri

  • QHull (>= 2020.2): una libreria per il calcolo delle triangolazioni

Per impostazione predefinita, Matplotlib scarica e crea le proprie copie di FreeType (questo è necessario per eseguire la suite di test, perché diverse versioni di FreeType rasterizzano i caratteri in modo diverso) e di Qhull. Come eccezione, Matplotlib utilizza per impostazione predefinita la versione di sistema di FreeType su AIX.

Per forzare Matplotlib ad utilizzare una copia di FreeType o Qhull già installata nel tuo sistema, crea un mplsetup.cfgfile con il seguente contenuto:

[libs]
system_freetype = true
system_qhull = true

prima di correre .python -m pip install .

In questo caso, è necessario installare la libreria e le intestazioni FreeType e Qhull. Ciò può essere ottenuto utilizzando un gestore di pacchetti, ad esempio per 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

(adattare di conseguenza per Qhull).

Su Linux e macOS, si consiglia inoltre di installare pkg-config , uno strumento di supporto per l'individuazione di 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=...

Se non si utilizza pkg-config (in particolare su Windows), potrebbe essere necessario impostare il percorso di inclusione (alle intestazioni della libreria) e il percorso di collegamento (alle librerie) in modo esplicito, se non si trovano in posizioni standard. Questo può essere fatto usando variabili di ambiente standard - su Linux e OSX:

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

e su Windows:

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

Se segui questa strada ma devi ripristinare e ricostruire per modificare le tue impostazioni, ricordati di cancellare i tuoi artefatti prima di ricostruire:

git clean -xfd

Pip minimo / supporto manylinux (linux) #

Matplotlib pubblica molte ruote Linux che hanno una versione minima di pip che riconoscerà le ruote

  • Python 3.8: manylinx2010/pip >= 19.0

  • Python 3.9+: manylinx2014/ pip >= 19.3

In tutti i casi la versione richiesta di pip è incorporata nel sorgente CPython.

Dipendenze per la creazione di Matplotlib #

Imposta dipendenze #

  • certifi (>= 20.06.2020). Utilizzato durante il download del codice sorgente freetype e QHull durante la compilazione. Questa non è una dipendenza di runtime.

  • setuptools_scm (>= 7). Utilizzato per aggiornare il report mpl.__version__in base al commit git corrente. Anche una dipendenza di runtime per installazioni modificabili.

  • NumPy (>= 1,19). Anche una dipendenza di runtime.

compilatore C++ #

Matplotlib richiede un compilatore C++ che supporti C++11.

Dipendenze per testare Matplotlib #

Questa sezione elenca il software aggiuntivo richiesto per l'esecuzione dei test .

Necessario:

Opzionale:

Oltre a tutte le dipendenze facoltative sulla libreria principale, per il test verranno utilizzate le seguenti, se installate.

  • Ghostscript (>= 9.0, per il rendering di file PDF)

  • Inkscape (per rendere i file SVG)

  • nbformat e nbconvert utilizzati per testare il backend del notebook

  • panda utilizzato per testare la compatibilità con i panda

  • pikepdf utilizzato in alcuni test per i backend pgf e pdf

  • psutil utilizzato per testare i backend interattivi

  • pytest-cov (>= 2.3.1) per raccogliere informazioni sulla copertura

  • pytest-flake8 per testare gli standard di codifica usando flake8

  • pytest-timeout per limitare il runtime in caso di test bloccati

  • pytest-xdist per eseguire i test in parallelo

  • pytest-xvfb per eseguire test senza che si aprano finestre (Linux)

  • pytz usato per testare pytz int

  • sphinx usato per testare le nostre estensioni sphinx

  • Font WenQuanYi Zen Hei e Noto Sans CJK per testare font fallback e font non occidentali

  • xarray usato per testare la compatibilità con xarray

Se una di queste dipendenze non viene scoperta, i test che si basano su di esse verranno saltati da pytest.

Nota

Quando installi Inkscape su Windows, assicurati di selezionare "Aggiungi Inkscape al PERCORSO di sistema", per tutti gli utenti o per l'utente corrente, altrimenti i test non lo troveranno.

Dipendenze per la creazione della documentazione di Matplotlib #

Pacchetti Python #

I pacchetti Python aggiuntivi richiesti per compilare la documentazione sono elencati in doc-requirements.txte possono essere installati utilizzando

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

Il contenuto di doc-requirements.txtè anche mostrato di seguito:

# 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

Ulteriori dipendenze esterne #

Necessario:

  • una distribuzione LaTeX minima funzionante

  • Graphviz

  • i seguenti pacchetti LaTeX (se il tuo sistema operativo raggruppa TeXLive, la versione "completa" del programma di installazione, ad esempio "texlive-full" o "texlive-all", spesso includerà automaticamente questi pacchetti):

Facoltativo, ma consigliato:

  • Inkscape

  • optipng

  • il carattere "Humor Sans" (noto anche come carattere "XKCD") o l'alternativa gratuita Comic Neue

  • il carattere "Times New Roman"

Nota

La documentazione non verrà compilata senza LaTeX e Graphviz. Questi non sono pacchetti Python e devono essere installati separatamente. La documentazione può essere compilata senza Inkscape e optipng, ma il processo di compilazione genererà vari avvertimenti. Se il processo di compilazione avverte che mancano dei caratteri, assicurati che la tua distribuzione LaTeX includa cm-super o installalo separatamente.