11.. _dependencies :
22
3- ============
3+ ************
44Dependencies
5- ============
5+ ************
6+
7+ .. _runtime_dependencies :
68
79Runtime dependencies
810====================
911
1012
11- Mandatory dependencies
12- ----------------------
13+ Required
14+ --------
1315
1416When installing through a package manager like ``pip `` or ``conda ``, the
1517mandatory dependencies are automatically installed. This list is mainly for
@@ -31,8 +33,8 @@ reference.
3133
3234.. _optional_dependencies :
3335
34- Optional dependencies
35- ---------------------
36+ Optional
37+ --------
3638
3739The following packages and tools are not required but extend the capabilities
3840of Matplotlib.
@@ -176,9 +178,8 @@ remember to clear your artifacts before re-building::
176178
177179 git clean -xfd
178180
179-
180- Manual Download
181- ^^^^^^^^^^^^^^^
181+ Install from source
182+ ^^^^^^^^^^^^^^^^^^^
182183
183184If the automatic download does not work (for example, on air-gapped systems) it is
184185preferable to instead use system libraries. However you can manually download the
@@ -202,19 +203,21 @@ In all cases the required version of pip is embedded in the CPython source.
202203
203204.. _development-dependencies :
204205
205- Dependencies for building Matplotlib
206- ====================================
206+ Build dependencies
207+ ==================
208+
207209
208210.. _setup-dependencies :
209211
210- Setup dependencies
211- ------------------
212+ Python
213+ ------
212214
213215By default, ``pip `` will build packages using build isolation, and the following
214216dependencies will be automatically installed in the isolated environment to build
215217Matplotlib. However, for development, you may wish to make an editable install, which
216218will require disabling build isolation, so these build dependencies should be installed
217- in your target environment manually:
219+ in the target environment manually.
220+ :
218221
219222- `meson-python <https://meson-python.readthedocs.io/ >`_ (>= 0.13.1).
220223- `ninja <https://ninja-build.org/ >`_ (>= 1.8.2). This may be available in your package
@@ -227,14 +230,21 @@ in your target environment manually:
227230 Also a runtime dependency for editable installs.
228231- `NumPy <https://numpy.org >`_ (>= 1.21). Also a runtime dependency.
229232
233+ .. note ::
234+ The Python packages listed here will be installed automatically if you are
235+ using a virtual environment that was created following the instructions in
236+ :ref: `dev-environment `.
237+
230238
231239.. _compile-dependencies :
232240
233- C++ compiler
241+ C-extensions
234242------------
235243
236244Matplotlib requires a C++ compiler that supports C++17, and each platform has a
237245development environment that must be installed before a compiler can be installed.
246+ You may also need to install headers for various libraries called in the C-extension
247+ source files.
238248
239249.. tab-set ::
240250
@@ -294,8 +304,9 @@ Xcode, VS Code or Linux package manager. Choose **one** compiler from this list:
294304
295305.. _test-dependencies :
296306
297- Dependencies for testing Matplotlib
298- ===================================
307+ Test Dependencies
308+ =================
309+
299310This section lists the additional software required for
300311:ref: `running the tests <testing >`.
301312
@@ -357,11 +368,12 @@ them will be skipped by pytest.
357368
358369.. _doc-dependencies :
359370
360- Dependencies for building Matplotlib's documentation
361- ====================================================
371+ Documentation dependencies
372+ ==========================
373+
374+ Python
375+ ------
362376
363- Python packages
364- ---------------
365377The additional Python packages required to build the
366378:ref: `documentation <documenting-matplotlib >` are listed in
367379:file: `doc-requirements.txt ` and can be installed using ::
@@ -373,13 +385,22 @@ The content of :file:`doc-requirements.txt` is also shown below:
373385.. include :: ../../requirements/doc/doc-requirements.txt
374386 :literal:
375387
376- Additional external dependencies
377- --------------------------------
378- Required:
379388
389+ External tools
390+ --------------
391+
392+ The documentation will not build without LaTeX and Graphviz. These are not
393+ Python packages and must be installed separately. The documentation can be
394+ built without Inkscape and optipng, but the build process will raise various
395+ warnings. If the build process warns that you are missing fonts, make sure
396+ your LaTeX distribution bundles cm-super or install it separately.
397+
398+ Required
399+ ^^^^^^^^
400+
401+ * `Graphviz <http://www.graphviz.org/download >`_
380402* a minimal working LaTeX distribution, e.g., `TeX Live <https://www.tug.org/texlive/ >`_ or
381403 `MikTeX <https://miktex.org/ >`_
382- * `Graphviz <http://www.graphviz.org/download >`_
383404* the following LaTeX packages (if your OS bundles TeX Live, the
384405 "complete" version of the installer, e.g. "texlive-full" or "texlive-all",
385406 will often automatically include these packages):
@@ -388,18 +409,11 @@ Required:
388409 * `dvipng <https://ctan.org/pkg/dvipng >`_
389410 * `underscore <https://ctan.org/pkg/underscore >`_
390411
391- Optional, but recommended:
412+ Optional
413+ ^^^^^^^^
392414
393415* `Inkscape <https://inkscape.org >`_
394416* `optipng <http://optipng.sourceforge.net >`_
395417* the font "Humor Sans" (aka the "XKCD" font), or the free alternative
396418 `Comic Neue <http://comicneue.com/ >`_
397419* the font "Times New Roman"
398-
399- .. note ::
400-
401- The documentation will not build without LaTeX and Graphviz. These are not
402- Python packages and must be installed separately. The documentation can be
403- built without Inkscape and optipng, but the build process will raise various
404- warnings. If the build process warns that you are missing fonts, make sure
405- your LaTeX distribution bundles cm-super or install it separately.
0 commit comments