================= 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 `_ (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 `_ 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