8000 Merge pull request #23620 from tacaswell/doc_update_deps · matplotlib/matplotlib@16967c8 · GitHub
[go: up one dir, main page]

Skip to content

Commit 16967c8

Browse files
authored
Merge pull request #23620 from tacaswell/doc_update_deps
Doc update deps
2 parents 7f2f5b1 + 9e7c049 commit 16967c8

File tree

1 file changed

+97
-29
lines changed

1 file changed

+97
-29
lines changed

doc/devel/dependencies.rst

Lines changed: 97 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ Dependencies
77
Runtime dependencies
88
====================
99

10+
1011
Mandatory dependencies
1112
----------------------
1213

@@ -15,14 +16,16 @@ mandatory dependencies are automatically installed. This list is mainly for
1516
reference.
1617

1718
* `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)
2020
* `cycler <https://matplotlib.org/cycler/>`_ (>= 0.10.0)
2121
* `dateutil <https://pypi.org/project/python-dateutil/>`_ (>= 2.7)
22+
* `fontTools <https://fonttools.readthedocs.io/en/latest/>`_ (>=4.22.0)
2223
* `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)
2326
* `Pillow <https://pillow.readthedocs.io/en/latest/>`_ (>= 6.2)
2427
* `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/>`_
2629

2730

2831
.. _optional_dependencies:
@@ -40,12 +43,19 @@ Matplotlib figures can be rendered to various user interfaces. See
4043
:ref:`what-is-a-backend` for more details on the optional Matplotlib backends
4144
and the capabilities they provide.
4245

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.
4449
* 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>`_.
4654
* pycairo_ (>= 1.11.0) or cairocffi_ (>= 0.8): for the GTK and/or cairo-based
4755
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/.
4959
* Tornado_ (>=5): for the WebAgg backend.
5060
* ipykernel_: for the nbagg backend.
5161
* macOS (>=10.12): for the macosx backend.
@@ -62,13 +72,6 @@ and the capabilities they provide.
6272
.. _Tornado: https://pypi.org/project/tornado/
6373
.. _ipykernel: https://pypi.org/project/ipykernel/
6474

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-
7275
Animations
7376
~~~~~~~~~~
7477

@@ -80,7 +83,8 @@ Font handling and rendering
8083
~~~~~~~~~~~~~~~~~~~~~~~~~~~
8184

8285
* `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)
8488
<https://ghostscript.com/download/>`_ : for rendering text with LaTeX.
8589
* `fontconfig <https://www.fontconfig.org>`_ (>= 2.7): for detection of system
8690
fonts on Linux.
@@ -168,53 +172,117 @@ remember to clear your artifacts before re-building::
168172
git clean -xfd
169173

170174

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+
171188
.. _development-dependencies:
172189

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+
175220

176221
.. _test-dependencies:
177222

178-
Additional dependencies for testing
223+
Dependencies for testing Matplotlib
179224
===================================
180225
This section lists the additional software required for
181226
:ref:`running the tests <testing>`.
182227

183228
Required:
184229

185230
- 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.
194231

195232
Optional:
196233

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
197243
- pytest-cov_ (>=2.3.1) to collect coverage information
198244
- pytest-flake8_ to test coding standards using flake8_
199245
- pytest-timeout_ to limit runtime in case of stuck tests
200246
- pytest-xdist_ to run tests in parallel
201247
- 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.
202262

203-
.. _pytest: http://doc.pytest.org/en/latest/
204263
.. _Ghostscript: https://www.ghostscript.com/
205264
.. _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
206272
.. _pytest-cov: https://pytest-cov.readthedocs.io/en/latest/
207273
.. _pytest-flake8: https://pypi.org/project/pytest-flake8/
208274
.. _pytest-timeout: https://pypi.org/project/pytest-timeout/
209275
.. _pytest-xdist: https://pypi.org/project/pytest-xdist/
210276
.. _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/
212280

213281

214282
.. _doc-dependencies:
215283

216-
Additional dependencies for building documentation
217-
==================================================
284+
Dependencies for building Matplotlib's documentation
285+
====================================================
218286

219287
Python packages
220288
---------------

0 commit comments

Comments
 (0)
0