依赖项#

运行时依赖#

强制依赖#

通过像piporconda之类的包管理器进行安装时,会自动安装必需的依赖项。此列表主要供参考。

可选依赖项#

以下包和工具不是必需的,但扩展了 Matplotlib 的功能。

后端#

Matplotlib 图形可以呈现到各种用户界面。请参阅 什么是后端?有关可选 Matplotlib 后端及其提供的功能的更多详细信息。

  • Tk (>= 8.4, != 8.6.0 or 8.6.1):用于基于 Tk 的后端。Tk 是大多数标准 Python 安装的一部分,但它不是 Python 本身的一部分,因此在极少数情况下可能不存在。

  • PyQt6 (>= 6.1)、PySide6PyQt5PySide2:用于基于 Qt 的后端。

  • PyGObjectpycairo (>= 1.14.0):用于基于 GTK 的后端。如果使用 pip(但不是 conda 或系统包管理器) PyGObject 必须从源代码构建;请参阅pygobject 文档

  • pycairo (>= 1.14.0) 或cairocffi (>= 0.8):用于基于 cairo 的后端。

  • wxPython (>= 4):用于基于 wx 的后端。如果在 Linux wxPython 轮子上使用 pip(但不是 conda 或系统包管理器),则必须从https://wxpython.org/pages/downloads/手动下载。

  • Tornado (>= 5):用于 WebAgg 后端。

  • ipykernel:用于 nbagg 后端。

  • macOS (>= 10.12):用于 macOS 后端。

动画#

字体处理和渲染#

C 库#

Matplotlib 自带以下库的副本:

  • Agg: Anti-Grain Geometry C++ 渲染引擎

  • ttconv: TrueType 字体实用程序

此外,Matplotlib 依赖于:

  • FreeType (>= 2.3):字体渲染库

  • QHull (>= 2020.2):计算三角剖分的库

默认情况下,Matplotlib 下载并构建自己的 FreeType 副本(这是运行测试套件所必需的,因为不同版本的 FreeType 对字符进行不同的光栅化)和 Qhull。作为一个例外,Matplotlib 在 AIX 上默认为 FreeType 的系统版本。

要强制 Matplotlib 使用系统中已安装的 FreeType 或 Qhull 的副本,请创建一个mplsetup.cfg包含以下内容的文件:

[libs]
system_freetype = true
system_qhull = true

在运行之前。python -m pip install .

在这种情况下,您需要安装 FreeType 和 Qhull 库和头文件。这可以使用包管理器来实现,例如对于 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

(相应地适应 Qhull)。

在 Linux 和 macOS 上,还建议安装pkg-config,这是一个用于定位 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=...

如果不使用 pkg-config(特别是在 Windows 上),您可能需要明确设置包含路径(到库头文件)和链接路径(到库),如果它们不在标准位置。这可以使用标准环境变量来完成——在 Linux 和 OSX 上:

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

在 Windows 上:

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

如果您走这条路线但需要重置和重建以更改您的设置,请记住在重新构建之前清除您的工件:

git clean -xfd

最低 pip / manylinux 支持 (linux) #

Matplotlib 发布了许多 Linux 轮子 ,这些轮子具有最低版本的 pip,可以识别轮子

  • Python 3.8:manylinx2010/点 >= 19.0

  • Python 3.9+:manylinx2014/点 >= 19.3

在所有情况下,所需的 pip 版本都嵌入在 CPython 源代码中。

构建 Matplotlib 的依赖项#

设置依赖项#

  • 证书(> = 2020.06.20)在构建期间下载 freetype 和 QHull 源时使用。这不是运行时依赖项。

  • setuptools_scm (>= 7)。用于mpl.__version__根据当前 git commit 更新报告。也是可编辑安装的运行时依赖项。

  • NumPy (>= 1.19)。也是一个运行时依赖。

C++ 编译器#

Matplotlib 需要支持 C++11 的 C++ 编译器。

测试 Matplotlib 的依赖项#

本节列出了运行测试所需的附加软件 。

必需的:

可选的:

除了主库上的所有可选依赖项之外,如果安装了以下内容,将使用以下内容进行测试。

如果未发现任何这些依赖项,则依赖它们的测试将被 pytest 跳过。

笔记

在 Windows 上安装 Inkscape 时,请确保为所有用户或当前用户选择“将 Inkscape 添加到系统路径”,否则测试将找不到它。

构建 Matplotlib 文档的依赖项#

Python包#

构建文档所需的其他 Python 包在 中列出, doc-requirements.txt可以使用

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

的内容doc-requirements.txt也如下图所示:

# 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

额外的外部依赖#

必需的:

  • 一个最小的工作 LaTeX 发行版

  • 图形可视化

  • 以下 LaTeX 包(如果您的操作系统捆绑 TeXLive,安装程序的“完整”版本,例如“texlive-full”或“texlive-all”,通常会自动包含这些包):

可选,但推荐:

  • 墨景

  • 优化

  • 字体“Humor Sans”(又名“XKCD”字体),或免费的替代 Comic Neue

  • 字体“Times New Roman”

笔记

如果没有 LaTeX 和 Graphviz,文档将无法构建。这些不是 Python 包,必须单独安装。可以在没有 Inkscape 和 optipng 的情况下构建文档,但构建过程会引发各种警告。如果构建过程警告您缺少字体,请确保您的 LaTeX 分发包捆绑 cm-super 或单独安装。