@@ -7,6 +7,7 @@ Dependencies
7
7
Runtime dependencies
8
8
====================
9
9
10
+
10
11
Mandatory dependencies
11
12
----------------------
12
13
@@ -15,14 +16,16 @@ mandatory dependencies are automatically installed. This list is mainly for
15
16
reference.
16
17
17
18
* `Python <https://www.python.org/downloads/ >`_ (>= 3.8)
18
- * `NumPy <https://numpy.org >`_ (>= 1.19)
19
- * `setuptools <https://setuptools.readthedocs.io/en/latest/ >`_
19
+ * `contourpy <https://pypi.org/project/contourpy/ >`_ (>= 1.0.1)
20
20
* `cycler <https://matplotlib.org/cycler/ >`_ (>= 0.10.0)
21
21
* `dateutil <https://pypi.org/project/python-dateutil/ >`_ (>= 2.7)
22
+ * `fontTools <https://fonttools.readthedocs.io/en/latest/ >`_ (>=4.22.0)
22
23
* `kiwisolver <https://github.com/nucleic/kiwi >`_ (>= 1.0.1)
24
+ * `NumPy <https://numpy.org >`_ (>= 1.19)
25
+ * `packaging <https://pypi.org/project/packaging/ >`_ (>= 20.0)
23
26
* `Pillow <https://pillow.readthedocs.io/en/latest/ >`_ (>= 6.2)
24
27
* `pyparsing <https://pypi.org/project/pyparsing/ >`_ (>=2.2.1)
25
- * `fontTools <https://fonttools .readthedocs.io/en/latest/ >`_ (>=4.22.0)
28
+ * `setuptools <https://setuptools .readthedocs.io/en/latest/ >`_
26
29
27
30
28
31
.. _optional_dependencies :
@@ -40,12 +43,19 @@ Matplotlib figures can be rendered to various user interfaces. See
40
43
:ref: `what-is-a-backend ` for more details on the optional Matplotlib backends
41
44
and the capabilities they provide.
42
45
43
- * Tk _ (>= 8.4, != 8.6.0 or 8.6.1) [# ]_: for the Tk-based backends.
46
+ * Tk _ (>= 8.4, != 8.6.0 or 8.6.1): for the Tk-based backends. Tk is part of
47
+ most standard Python installations, but it's not part of Python itself and
48
+ thus may not be present in rare cases.
44
49
* PyQt6 _ (>= 6.1), PySide6 _, PyQt5 _, or PySide2 _: for the Qt-based backends.
45
- * PyGObject _: for the GTK-based backends [# ]_.
50
+ * PyGObject _: for the GTK-based backends. If using pip (but not conda or system
51
+ package manager) PyGObject must be built from source; see `pygobject
52
+ documentation
53
+ <https://pygobject.readthedocs.io/en/latest/devguide/dev_environ.html> `_.
46
54
* pycairo _ (>= 1.11.0) or cairocffi _ (>= 0.8): for the GTK and/or cairo-based
47
55
backends.
48
- * wxPython _ (>= 4) [# ]_: for the wx-based backends.
56
+ * wxPython _ (>= 4): for the wx-based backends. If using pip (but not conda or
57
+ system package manager) on Linux wxPython wheels must be manually downloaded
58
+ from https://wxpython.org/pages/downloads/.
49
59
* Tornado _ (>=5): for the WebAgg backend.
50
60
* ipykernel _: for the nbagg backend.
51
61
* macOS (>=10.12): for the macosx backend.
@@ -62,13 +72,6 @@ and the capabilities they provide.
62
72
.. _Tornado : https://pypi.org/project/tornado/
63
73
.. _ipykernel : https://pypi.org/project/ipykernel/
64
74
65
- .. [# ] Tk is part of most standard Python installations, but it's not part of
66
- Python itself and thus may not be present in rare cases.
67
- .. [# ] If using pip (and not conda), PyGObject must be built from source; see
68
- https://pygobject.readthedocs.io/en/latest/devguide/dev_environ.html.
69
- .. [# ] If using pip (and not conda) on Linux, wxPython wheels must be manually
70
- downloaded from https://wxpython.org/pages/downloads/.
71
-
72
75
Animations
73
76
~~~~~~~~~~
74
77
@@ -80,7 +83,8 @@ Font handling and rendering
80
83
~~~~~~~~~~~~~~~~~~~~~~~~~~~
81
84
82
85
* `LaTeX <https://www.latex-project.org/ >`_ (with `cm-super
83
- <https://ctan.org/pkg/cm-super> `__ ) and `GhostScript (>=9.0)
86
+ <https://ctan.org/pkg/cm-super> `__ and `underscore
87
+ <https://ctan.org/pkg/underscore> `__ ) and `GhostScript (>=9.0)
84
88
<https://ghostscript.com/download/> `_ : for rendering text with LaTeX.
85
89
* `fontconfig <https://www.fontconfig.org >`_ (>= 2.7): for detection of system
86
90
fonts on Linux.
@@ -168,53 +172,117 @@ remember to clear your artifacts before re-building::
168
172
git clean -xfd
169
173
170
174
175
+ Minimum pip / manylinux support (linux)
176
+ ---------------------------------------
177
+
178
+ Matplotlib publishes `manylinux wheels <https://github.com/pypa/manylinux >`_
179
+ which have a minimum version of pip which will recognize the wheels
180
+
181
+ - Python 3.8: ``manylinx2010 `` / pip >=19.0
182
+ - Python 3.9+: ``manylinx2014 `` / pip >=19.3
183
+
184
+ In all cases the required version of pip is embedded in the CPython source.
185
+
186
+
187
+
171
188
.. _development-dependencies :
172
189
173
- Additional dependencies for development
174
- =======================================
190
+ Dependencies for building Matplotlib
191
+ ====================================
192
+
193
+ .. _setup-dependencies :
194
+
195
+ Setup dependencies
196
+ ------------------
197
+
198
+ - `certifi <https://pypi.org/project/certifi/ >`_ (>= 2020.06.20). Used while
199
+ downloading the freetype and QHull source during build. This is not a
200
+ runtime dependency.
201
+ - `setuptools_scm <https://pypi.org/project/setuptools-scm/ >`_ (>= 7). Used to
202
+ update the reported ``mpl.__version__ `` based on the current git commit.
203
+ Also a runtime dependency for editable installs.
204
+ - `NumPy <https://numpy.org >`_ (>= 1.19). Also a runtime dependency.
205
+
206
+
207
+ .. _compile-dependencies :
208
+
209
+ C++ compiler
210
+ ------------
211
+
212
+ Matplotlib requires a C++ compiler that supports C++11.
213
+
214
+ - `gcc 4.8.1 <https://gcc.gnu.org/projects/cxx-status.html#cxx11 >`_ or higher
215
+ - `clang 3.3 <https://clang.llvm.org/cxx_status.html >`_ or higher
216
+ - `Visual Studio 2015
217
+ <https://docs.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-140> `_
218
+ (aka VS 14.0) or higher
219
+
175
220
176
221
.. _test-dependencies :
177
222
178
- Additional dependencies for testing
223
+ Dependencies for testing Matplotlib
179
224
===================================
180
225
This section lists the additional software required for
181
226
:ref: `running the tests <testing >`.
182
227
183
228
Required:
184
229
185
230
- pytest _ (>=3.6)
186
- - Ghostscript _ (>= 9.0, to render PDF files)
187
- - Inkscape _ (to render SVG files)
188
-
189
- .. note ::
190
-
191
- When installing Inkscape on Windows, make sure that you select Add
192
- Inkscape to system PATH, either for all users or current user, or the
193
- tests will not find it.
194
231
195
232
Optional:
196
233
234
+ In addition to all of the optional dependencies on the main library, for
235
+ testing the following will be used if they are installed.
236
+
237
+ - Ghostscript _ (>= 9.0, to render PDF files)
238
+ - Inkscape _ (to render SVG files)
239
+ - nbformat _ and nbconvert _ used to test the notebook backend
240
+ - pandas _ used to test compatibility with Pandas
241
+ - pikepdf _ used in some tests for the pgf and pdf backends
242
+ - psutil _ used in testing the interactive backends
197
243
- pytest-cov _ (>=2.3.1) to collect coverage information
198
244
- pytest-flake8 _ to test coding standards using flake8 _
199
245
- pytest-timeout _ to limit runtime in case of stuck tests
200
246
- pytest-xdist _ to run tests in parallel
201
247
- pytest-xvfb _ to run tests without windows popping up (Linux)
248
+ - pytz _ used to test pytz int
249
+ - sphinx _ used to test our sphinx extensions
250
+ - WenQuanYi Zen Hei and `Noto Sans CJK <https://fonts.google.com/noto/use >`_
251
+ fonts for testing font fallback and non-western fonts
252
+ - xarray _ used to test compatibility with xarray
253
+
254
+ If any of these dependencies are not discovered the tests that rely on them
255
+ will be skipped by pytest.
256
+
257
+ .. note ::
258
+
259
+ When installing Inkscape on Windows, make sure that you select “Add
260
+ Inkscape to system PATH”, either for all users or current user, or the
261
+ tests will not find it.
202
262
203
- .. _pytest : http://doc.pytest.org/en/latest/
204
263
.. _Ghostscript : https://www.ghostscript.com/
205
264
.. _Inkscape : https://inkscape.org
265
+ .. _flake8 : https://pypi.org/project/flake8/
266
+ .. _nbconvert : https://pypi.org/project/nbconvert/
267
+ .. _nbformat : https://pypi.org/project/nbformat/
268
+ .. _pandas : https://pypi.org/project/pandas/
269
+ .. _pikepdf : https://pypi.org/project/pikepdf/
270
+ .. _psutil : https://pypi.org/project/psuitl/
271
+ .. _pytz : https://fonts.google.com/noto/use#faq
206
272
.. _pytest-cov : https://pytest-cov.readthedocs.io/en/latest/
207
273
.. _pytest-flake8 : https://pypi.org/project/pytest-flake8/
208
274
.. _pytest-timeout : https://pypi.org/project/pytest-timeout/
209
275
.. _pytest-xdist : https://pypi.org/project/pytest-xdist/
210
276
.. _pytest-xvfb : https://pypi.org/project/pytest-xvfb/
211
- .. _flake8 : https://pypi.org/project/flake8/
277
+ .. _pytest : http://doc.pytest.org/en/latest/
278
+ .. _sphinx : https://pypi.org/project/Sphinx/
279
+ .. _xarray : https://pypi.org/project/xarray/
212
280
213
281
214
282
.. _doc-dependencies :
215
283
216
- Additional dependencies for building documentation
217
- ==================================================
284
+ Dependencies for building Matplotlib's documentation
285
+ ====================================================
218
286
219
287
Python packages
220
288
---------------
0 commit comments