summaryrefslogtreecommitdiffstats
path: root/doc/usage/installation.rst
blob: 7be688928c866405b9aa116bd7a55856fb05ae4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
=================
Installing Sphinx
=================

Sphinx is a Python application. It can be installed in one of the ways described
below.

.. contents:: Installation methods
   :depth: 2
   :local:
   :backlinks: none

.. highlight:: console

After installation, you can check that Sphinx is available by running ::

   $ sphinx-build --version

This should print out the Sphinx version number.


.. tip::

   For local development, it is
   generally recommended to install Sphinx into a non-global environment
   (using for example `venv`__ or `conda`__ environments).
   This will allow for the use of separate sphinx versions and third-party extensions
   for each sphinx project.

   __ https://docs.python.org/3/library/venv.html
   __ https://conda.io/projects/conda/en/latest/user-guide/getting-started.html


.. _install-pypi:

PyPI package
------------

Sphinx packages are published on the `Python Package Index
<https://pypi.org/project/Sphinx/>`_ (PyPI).  The preferred tool for installing
packages from PyPI is :command:`pip`, which is included in all modern versions of
Python.

Run the following command::

   $ pip install -U sphinx

.. tip::

   To avoid issues when rebuilding your environment,
   it is advisable to pin sphinx and third-party extension
   versions in a `requirements.txt file`__::

      $ pip install -r requirements.txt

   Or, if writing documentation for a Python package,
   place the dependencies in the `pyproject.toml file`__::

      $ pip install .[docs]

   __ https://pip.pypa.io/en/stable/reference/requirements-file-format/
   __ https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#dependencies-optional-dependencies

.. _install-conda:

Conda package
-------------
To work with :command:`conda`, you need a conda-based Python distribution such as
`anaconda`__, `miniconda`__, `miniforge`__ or `micromamba`__.

__ https://docs.anaconda.com/anaconda/
__ https://docs.anaconda.com/miniconda/
__ https://github.com/conda-forge/miniforge/
__ https://mamba.readthedocs.io/en/latest/installation/micromamba-installation.html


Sphinx is available both via the *anaconda main* channel (maintained by Anaconda
Inc.)

::

   $ conda install sphinx

as well as via the *conda-forge* community channel ::

   $ conda install -c conda-forge sphinx

OS-specific package manager
---------------------------

You may install a global version of Sphinx into your system using OS-specific
package managers. However, be aware that this is less flexible and you may run into
compatibility issues if you want to work across different projects.

Linux
~~~~~

Debian/Ubuntu
"""""""""""""

Install either ``python3-sphinx`` using :command:`apt-get`:

::

   $ apt-get install python3-sphinx

If it not already present, this will install Python for you.

RHEL, CentOS
""""""""""""

Install ``python-sphinx`` using :command:`yum`:

::

   $ yum install python-sphinx

If it not already present, this will install Python for you.

Other distributions
"""""""""""""""""""

Most Linux distributions have Sphinx in their package repositories.  Usually
the package is called ``python3-sphinx``, ``python-sphinx`` or ``sphinx``.  Be
aware that there are at least two other packages with ``sphinx`` in their name:
a speech recognition toolkit (*CMU Sphinx*) and a full-text search database
(*Sphinx search*).

macOS
~~~~~

Sphinx can be installed using `Homebrew`__, `MacPorts`__.

__ https://brew.sh/
__ https://www.macports.org/

Homebrew
""""""""

::

   $ brew install sphinx-doc

For more information, refer to the `package overview`__.

__ https://formulae.brew.sh/formula/sphinx-doc

MacPorts
""""""""

Install either ``python3x-sphinx`` using :command:`port`:

::

   $ sudo port install py39-sphinx

To set up the executable paths, use the ``port select`` command:

::

   $ sudo port select --set python python39
   $ sudo port select --set sphinx py39-sphinx

For more information, refer to the `package overview`__.

__ https://www.macports.org/ports.php?by=library&substr=py39-sphinx

Windows
~~~~~~~

Sphinx can be install using `Chocolatey`__.

__ https://chocolatey.org/

Chocolatey
""""""""""

::

   $ choco install sphinx

You would need to `install Chocolatey
<https://chocolatey.org/install>`_
before running this.

For more information, refer to the `chocolatey page`__.

__ https://chocolatey.org/packages/sphinx/

Docker
------

Docker images for Sphinx are published on the `Docker Hub`_.  There are two kind
of images:

- `sphinxdoc/sphinx`_
- `sphinxdoc/sphinx-latexpdf`_

.. _Docker Hub: https://hub.docker.com/
.. _sphinxdoc/sphinx: https://hub.docker.com/r/sphinxdoc/sphinx
.. _sphinxdoc/sphinx-latexpdf: https://hub.docker.com/r/sphinxdoc/sphinx-latexpdf

Former one is used for standard usage of Sphinx, and latter one is mainly used for
PDF builds using LaTeX.  Please choose one for your purpose.

.. note::

   sphinxdoc/sphinx-latexpdf contains TeXLive packages. So the image is very large
   (over 2GB!).

.. hint::

   When using docker images, please use ``docker run`` command to invoke sphinx
   commands.  For example, you can use following command to create a Sphinx
   project:

   .. code-block:: console

      $ docker run -it --rm -v /path/to/document:/docs sphinxdoc/sphinx sphinx-quickstart

   And you can use the following command to build HTML document:

   .. code-block:: console

      $ docker run --rm -v /path/to/document:/docs sphinxdoc/sphinx make html

For more details, please read `README file`__ of docker images.

.. __: https://hub.docker.com/r/sphinxdoc/sphinx

Installation of the latest development release
----------------------------------------------

You can install the latest development from *PyPI* using the ``--pre`` flag::

   $ pip install -U --pre sphinx

.. warning::

   You will not generally need (or want) to do this, but it can be
   useful if you see a possible bug in the latest stable release.

Installation from source
------------------------

You can install Sphinx directly from a clone of the `Git repository`__.  This
can be done either by cloning the repo and installing from the local clone, on
simply installing directly via :command:`git`.

::

   $ git clone https://github.com/sphinx-doc/sphinx
   $ cd sphinx
   $ pip install .

::

   $ pip install git+https://github.com/sphinx-doc/sphinx

You can also download a snapshot of the Git repo in either `tar.gz`__ or
`zip`__ format.  Once downloaded and extracted, these can be installed with
:command:`pip` as above.

.. highlight:: default

__ https://github.com/sphinx-doc/sphinx
__ https://github.com/sphinx-doc/sphinx/archive/master.tar.gz
__ https://github.com/sphinx-doc/sphinx/archive/master.zip