Sphinx: force rebuild of html, including autodoc


Currently, whenever I run sphinx-build, only when there are changes to the source files are the inline docstrings picked up and used. I’ve tried calling sphinx-build with the -a switch but this seems to have no effect.

How can I force a full rebuild of the HTML output and force autodoc execution?

Asked By: Phillip B Oldham



It seems to work if the -E option is used along with -a. I added it to the html target in my Makefile and now changes in docstrings are picked up without updating any .rst files.

Answered By: J. Katzwinkel

I do not use sphinx-build but with make html I always do touch *.rst on my source files. Then make html can pickup changes.

Answered By: Darek

I use the clean sub-command of make to force a rebuild of the documentation (as @Henrik stated in his comment).

You can issue it as a separate command:

make clean
make html

Or the commands can be combined:

make clean html
Answered By: Fiver

For Windows users, building on this answer to use -E -a option, I updated the make.bat file with the new option

> ./make.bat clean


pushd %~dp0
REM Command file for Sphinx documentation

if "%SPHINXBUILD%" == "" (
    set SPHINXBUILD=sphinx-build

set SOURCEDIR=source
set BUILDDIR=build
set TARGET=%1

if "%1" == "" goto help
if "%1" == "clean" goto clean
goto :run

echo.CLEAN BUILD with -E -a 
set %TARGET% = "html"
set %SPHINXOPTS% = "-E -a"

if errorlevel 9009 (
    echo.The 'sphinx-build' command was not found! Make sure you have Sphinx
    echo.installed, then set the SPHINXBUILD environment variable to point
    echo.to the full path of the 'sphinx-build' executable. Alternatively you
    echo.may add the Sphinx directory to PATH.
    echo.If you do not have Sphinx installed, grab it from
    exit /b 1

goto end

echo.   clean to make clean. 
Answered By: intotecho