Dependencias #

Dependencias de tiempo de ejecución #

Dependencias obligatorias #

Al instalar a través de un administrador de paquetes como pipo conda, las dependencias obligatorias se instalan automáticamente. Esta lista es principalmente para referencia.

Dependencias opcionales #

Los siguientes paquetes y herramientas no son necesarios, pero amplían las capacidades de Matplotlib.

Backends #

Las figuras de Matplotlib se pueden representar en varias interfaces de usuario. Consulte ¿Qué es un backend? para obtener más detalles sobre los backends opcionales de Matplotlib y las capacidades que brindan.

  • Tk (>= 8.4, != 8.6.0 o 8.6.1): para los backends basados ​​en Tk. Tk es parte de la mayoría de las instalaciones estándar de Python, pero no es parte de Python en sí mismo y, por lo tanto, es posible que no esté presente en casos excepcionales.

  • PyQt6 (>= 6.1), PySide6 , PyQt5 o PySide2 : para los backends basados ​​en Qt.

  • PyGObject y pycairo (>= 1.14.0): para los backends basados ​​en GTK. Si usa pip (pero no conda o el administrador de paquetes del sistema), PyGObject debe construirse desde la fuente; consulte la documentación de pygobject .

  • pycairo (>= 1.14.0) o cairocffi (>= 0.8): para backends basados ​​en cairo.

  • wxPython (>= 4): para los backends basados ​​en wx. Si usa pip (pero no conda o el administrador de paquetes del sistema) en Linux, las ruedas wxPython deben descargarse manualmente desde https://wxpython.org/pages/downloads/ .

  • Tornado (>= 5): para el backend de WebAgg.

  • ipykernel : para el backend de nbagg.

  • macOS (>= 10.12): para el backend de macosx.

Animaciones #

Manejo y representación de fuentes #

Bibliotecas C #

Matplotlib trae sus propias copias de las siguientes bibliotecas:

  • Agg: el motor de renderizado Anti-Grain Geometry C++

  • ttconv: una utilidad de fuente TrueType

Además, Matplotlib depende de:

  • FreeType (>= 2.3): una biblioteca de representación de fuentes

  • QHull (>= 2020.2): una biblioteca para computar triangulaciones

De forma predeterminada, Matplotlib descarga y crea sus propias copias de FreeType (esto es necesario para ejecutar el conjunto de pruebas, porque las diferentes versiones de FreeType rasterizan los caracteres de manera diferente) y de Qhull. Como excepción, Matplotlib utiliza de forma predeterminada la versión del sistema de FreeType en AIX.

Para obligar a Matplotlib a usar una copia de FreeType o Qhull ya instalada en su sistema, cree un mplsetup.cfgarchivo con el siguiente contenido:

[libs]
system_freetype = true
system_qhull = true

antes de correrpython -m pip install .

En este caso, debe instalar la biblioteca y los encabezados FreeType y Qhull. Esto se puede lograr utilizando un administrador de paquetes, por ejemplo, para 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

(adaptar en consecuencia para Qhull).

En Linux y macOS, también se recomienda instalar pkg-config , una herramienta auxiliar para localizar 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=...

Si no usa pkg-config (en particular en Windows), es posible que deba establecer la ruta de inclusión (a los encabezados de la biblioteca) y la ruta de enlace (a las bibliotecas) explícitamente, si no están en ubicaciones estándar. Esto se puede hacer usando variables de entorno estándar, en Linux y OSX:

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

y en Windows:

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

Si sigue esta ruta pero necesita restablecer y reconstruir para cambiar su configuración, recuerde borrar sus artefactos antes de reconstruir:

git clean -xfd

Soporte mínimo de pip / manylinux (linux) #

Matplotlib publica muchas ruedas Linux que tienen una versión mínima de pip que reconocerá las ruedas

  • Python 3.8: manylinx2010/ pip >= 19.0

  • Python 3.9+: manylinx2014/ pip >= 19.3

En todos los casos, la versión requerida de pip está incrustada en la fuente de CPython.

Dependencias para construir Matplotlib #

Dependencias de configuración #

  • certificado (>= 2020.06.20). Se usa al descargar el código fuente de freetype y QHull durante la compilación. Esto no es una dependencia de tiempo de ejecución.

  • setuptools_scm (>= 7). Se utiliza para actualizar el informe mpl.__version__en función de la confirmación de git actual. También una dependencia de tiempo de ejecución para instalaciones editables.

  • NúmPy (>= 1.19). También una dependencia de tiempo de ejecución.

compilador C++ #

Matplotlib requiere un compilador de C++ que admita C++11.

Dependencias para probar Matplotlib #

Esta sección enumera el software adicional necesario para ejecutar las pruebas .

Requerido:

Opcional:

Además de todas las dependencias opcionales en la biblioteca principal, para las pruebas se usará lo siguiente si están instaladas.

  • Ghostscript (>= 9.0, para renderizar archivos PDF)

  • Inkscape (para renderizar archivos SVG)

  • nbformat y nbconvert utilizados para probar el backend del portátil

  • pandas utilizados para probar la compatibilidad con Pandas

  • pikepdf utilizado en algunas pruebas para los backends pgf y pdf

  • psutil utilizado para probar los backends interactivos

  • pytest-cov (>= 2.3.1) para recopilar información de cobertura

  • pytest-flake8 para probar los estándares de codificación usando flake8

  • pytest-timeout para limitar el tiempo de ejecución en caso de pruebas atascadas

  • pytest-xdist para ejecutar pruebas en paralelo

  • pytest-xvfb para ejecutar pruebas sin que aparezcan ventanas (Linux)

  • pytz usado para probar pytz int

  • sphinx utilizado para probar nuestras extensiones sphinx

  • Fuentes WenQuanYi Zen Hei y Noto Sans CJK para probar fuentes alternativas y fuentes no occidentales

  • xarray utilizado para probar la compatibilidad con xarray

Si alguna de estas dependencias no se descubre, pytest omitirá las pruebas que se basan en ellas.

Nota

Al instalar Inkscape en Windows, asegúrese de seleccionar "Agregar Inkscape a la RUTA del sistema", ya sea para todos los usuarios o para el usuario actual, o las pruebas no lo encontrarán.

Dependencias para construir la documentación de Matplotlib #

Paquetes de Python #

Los paquetes de Python adicionales necesarios para crear la documentación se enumeran doc-requirements.txty se pueden instalar usando

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

El contenido de doc-requirements.txttambién se muestra a continuación:

# 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

Dependencias externas adicionales #

Requerido:

  • una distribución mínima de LaTeX de trabajo

  • Graphviz

  • los siguientes paquetes de LaTeX (si su sistema operativo incluye TeXLive, la versión "completa" del instalador, por ejemplo, "texlive-full" o "texlive-all", a menudo incluirá automáticamente estos paquetes):

Opcional, pero recomendado:

Nota

La documentación no se construirá sin LaTeX y Graphviz. Estos no son paquetes de Python y deben instalarse por separado. La documentación se puede construir sin Inkscape y optipng, pero el proceso de construcción generará varias advertencias. Si el proceso de compilación advierte que le faltan fuentes, asegúrese de que su distribución de LaTeX incluya cm-super o instálelo por separado.