依赖项#
运行时依赖#
强制依赖#
通过像pip
orconda
之类的包管理器进行安装时,会自动安装必需的依赖项。此列表主要供参考。
可选依赖项#
以下包和工具不是必需的,但扩展了 Matplotlib 的功能。
后端#
Matplotlib 图形可以呈现到各种用户界面。请参阅 什么是后端?有关可选 Matplotlib 后端及其提供的功能的更多详细信息。
Tk (>= 8.4, != 8.6.0 or 8.6.1):用于基于 Tk 的后端。Tk 是大多数标准 Python 安装的一部分,但它不是 Python 本身的一部分,因此在极少数情况下可能不存在。
PyGObject和pycairo (>= 1.14.0):用于基于 GTK 的后端。如果使用 pip(但不是 conda 或系统包管理器) PyGObject 必须从源代码构建;请参阅pygobject 文档。
wxPython (>= 4):用于基于 wx 的后端。如果在 Linux wxPython 轮子上使用 pip(但不是 conda 或系统包管理器),则必须从https://wxpython.org/pages/downloads/手动下载。
Tornado (>= 5):用于 WebAgg 后端。
ipykernel:用于 nbagg 后端。
macOS (>= 10.12):用于 macOS 后端。
动画#
ffmpeg:用于保存电影。
ImageMagick:用于保存动画 gif。
字体处理和渲染#
LaTeX(带有cm-super和underscore)和GhostScript (>= 9.0):用于使用 LaTeX 渲染文本。
fontconfig (>= 2.7):用于检测 Linux 上的系统字体。
C 库#
Matplotlib 自带以下库的副本:
Agg
: Anti-Grain Geometry C++ 渲染引擎ttconv
: TrueType 字体实用程序
此外,Matplotlib 依赖于:
默认情况下,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.0Python 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++ 编译器。
gcc 4.8.1或更高版本
clang 3.3或更高版本
Visual Studio 2015 (又名 VS 14.0)或更高版本
测试 Matplotlib 的依赖项#
本节列出了运行测试所需的附加软件 。
必需的:
pytest (>= 3.6)
可选的:
除了主库上的所有可选依赖项之外,如果安装了以下内容,将使用以下内容进行测试。
Ghostscript(>= 9.0,用于渲染 PDF 文件)
Inkscape(渲染 SVG 文件)
pandas用于测试与 Pandas 的兼容性
pikepdf用于 pgf 和 pdf 后端的一些测试
psutil用于测试交互式后端
pytest-cov (>= 2.3.1) 收集覆盖率信息
pytest-timeout以在测试卡住的情况下限制运行时间
pytest-xdist并行运行测试
pytest-xvfb在不弹出窗口的情况下运行测试(Linux)
pytz用来测试 pytz int
sphinx用于测试我们的 sphinx 扩展
WenQuanYi Zen Hei 和Noto Sans CJK 字体,用于测试字体回退和非西方字体
xarray用于测试与 xarray 的兼容性
如果未发现任何这些依赖项,则依赖它们的测试将被 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 或单独安装。