Skip to content

Commit

Permalink
DOC: Rewrite installation instructions
Browse files Browse the repository at this point in the history
  • Loading branch information
timhoffm committed Jun 21, 2024
1 parent 93e4eea commit bb98bb8
Showing 1 changed file with 105 additions and 109 deletions.
214 changes: 105 additions & 109 deletions doc/usage/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,110 @@ Installing Sphinx

.. highlight:: console

Overview
--------
Sphinx is a Python application.

Sphinx is written in `Python`__ and supports Python 3.9+. It builds upon the
shoulders of many third-party libraries such as `Docutils`__ and `Jinja`__,
which are installed when Sphinx is installed.
.. note::

If you use Sphinx for documenting a Python library or application, it is
generally recommended to install Sphinx into your dev environment.
By adding Sphinx and 3rdparty extensions or themes that you use to your dev
dependencies, you make sure that you have a consistent setup for building
your documentation.

.. _install-pypi:

PyPI packages
-------------

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

On Linux or MacOS, you should open your terminal and run the following command.

::

$ pip install -U sphinx

On Windows, you should open *Command Prompt* (:kbd:`⊞Win-r` and type
:command:`cmd`) and run the same command.

.. code-block:: doscon
C:\> pip install -U sphinx
After installation, type :command:`sphinx-build --version` on the command
prompt. If everything worked fine, you will see the version number for the
Sphinx package you just installed.

.. note::

Installation from *PyPI* also allows you to install the latest development
release. 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. To do this,
use the ``--pre`` flag::

$ pip install -U --pre sphinx

Using virtual environments
~~~~~~~~~~~~~~~~~~~~~~~~~~

When installing Sphinx using pip, it is highly recommended to use *virtual
environments*, which isolate the installed packages from the system packages,
thus removing the need to use administrator privileges. To create a virtual
environment in the ``.venv`` directory, use the following command.

::

$ python -m venv .venv

.. seealso:: :mod:`venv` -- creating virtual environments

.. warning::

Note that in some Linux distributions, such as Debian and Ubuntu,
this might require an extra installation step as follows.

.. code-block:: console
$ apt-get install python3-venv
.. _install-conda:

Conda packages
--------------
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 ::

__ https://docs.python-guide.org/
__ https://docutils.sourceforge.io/
__ https://jinja.palletsprojects.com/
$ conda install -c conda-forge sphinx

OS-specific package managers
----------------------------

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`:

Expand All @@ -36,7 +123,7 @@ Install either ``python3-sphinx`` using :command:`apt-get`:
If it not already present, this will install Python for you.

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

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

Expand All @@ -47,7 +134,7 @@ Install ``python-sphinx`` using :command:`yum`:
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
Expand All @@ -57,17 +144,15 @@ a speech recognition toolkit (*CMU Sphinx*) and a full-text search database


macOS
-----
~~~~~

Sphinx can be installed using `Homebrew`__, `MacPorts`__, or as part of
a Python distribution such as `Anaconda`__.
Sphinx can be installed using `Homebrew`__, `MacPorts`__.

__ https://brew.sh/
__ https://www.macports.org/
__ https://www.anaconda.com/download

Homebrew
~~~~~~~~
""""""""

::

Expand All @@ -78,7 +163,7 @@ For more information, refer to the `package overview`__.
__ https://formulae.brew.sh/formula/sphinx-doc

MacPorts
~~~~~~~~
""""""""

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

Expand All @@ -97,23 +182,16 @@ For more information, refer to the `package overview`__.

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

Anaconda
~~~~~~~~

::

$ conda install sphinx

Windows
-------
~~~~~~~

Sphinx can be install using `Chocolatey`__ or
:ref:`installed manually <windows-other-method>`.

__ https://chocolatey.org/

Chocolatey
~~~~~~~~~~
""""""""""

::

Expand All @@ -127,88 +205,6 @@ For more information, refer to the `chocolatey page`__.

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

.. _windows-other-method:

Other Methods
~~~~~~~~~~~~~

Most Windows users do not have Python installed by default, so we begin with
the installation of Python itself. To check if you already have Python
installed, open the *Command Prompt* (:kbd:`⊞Win-r` and type :command:`cmd`).
Once the command prompt is open, type :command:`python --version` and press
Enter. If Python is installed, you will see the version of Python printed to
the screen. If you do not have Python installed, refer to the `Hitchhikers
Guide to Python's`__ Python on Windows installation guides. You must install
`Python 3`__.

Once Python is installed, you can install Sphinx using :command:`pip`. Refer
to the :ref:`pip installation instructions <install-pypi>` below for more
information.

__ https://docs.python-guide.org/
__ https://docs.python-guide.org/starting/install3/win/


.. _install-pypi:

Installation from PyPI
----------------------

Sphinx packages are published on the `Python Package Index
<https://pypi.org/project/Sphinx/>`_. The preferred tool for installing
packages from *PyPI* is :command:`pip`. This tool is provided with all modern
versions of Python.

On Linux or MacOS, you should open your terminal and run the following command.

::

$ pip install -U sphinx

On Windows, you should open *Command Prompt* (:kbd:`⊞Win-r` and type
:command:`cmd`) and run the same command.

.. code-block:: doscon
C:\> pip install -U sphinx
After installation, type :command:`sphinx-build --version` on the command
prompt. If everything worked fine, you will see the version number for the
Sphinx package you just installed.

Installation from *PyPI* also allows you to install the latest development
release. 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. To do this, use
the ``--pre`` flag.

::

$ pip install -U --pre sphinx

Using virtual environments
~~~~~~~~~~~~~~~~~~~~~~~~~~

When installing Sphinx using pip,
it is highly recommended to use *virtual environments*,
which isolate the installed packages from the system packages,
thus removing the need to use administrator privileges.
To create a virtual environment in the ``.venv`` directory,
use the following command.

::

$ python -m venv .venv

.. seealso:: :mod:`venv` -- creating virtual environments

.. warning::

Note that in some Linux distributions, such as Debian and Ubuntu,
this might require an extra installation step as follows.

.. code-block:: console
$ apt-get install python3-venv

Docker
------
Expand Down

0 comments on commit bb98bb8

Please sign in to comment.