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.
- Pitone (>= 3.8) 
- contorno (>= 1.0.1) 
- ciclista (>= 0.10.0) 
- dateutil (>= 2.7) 
- fontStrumenti (>= 4.22.0) 
- kiwisolver (>= 1.0.1) 
- NumPy (>= 1,19) 
- confezione (>= 20.0) 
- Cuscino (>= 6.2) 
- pyparsing (>= 2.2.1) 
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 #
- ffmpeg : per salvare i filmati. 
- ImageMagick : per salvare gif animate. 
Gestione e rendering dei caratteri #
- LaTeX (con cm-super e underscore ) e GhostScript (>= 9.0) : per rendere il testo con LaTeX. 
- fontconfig (>= 2.7): per il rilevamento dei font di sistema su Linux. 
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.
- gcc 4.8.1 o superiore 
- clang 3.3 o superiore 
- Visual Studio 2015 (noto anche come VS 14.0) o versioni successive 
Dipendenze per testare Matplotlib #
Questa sezione elenca il software aggiuntivo richiesto per l'esecuzione dei test .
Necessario:
- pytest (>= 3.6) 
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 
- 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:
- 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.