@@ -7,6 +7,7 @@ Dependencies
77Runtime dependencies
88====================
99
10+
1011Mandatory dependencies
1112----------------------
1213
@@ -15,14 +16,16 @@ mandatory dependencies are automatically installed. This list is mainly for
1516reference.
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
4144and 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-
7275Animations
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===================================
180225This section lists the additional software required for
181226:ref: `running the tests <testing >`.
182227
183228Required:
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
195232Optional:
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
219287Python packages
220288---------------
0 commit comments