16

We don't want to be maintaining documentation as well as the source code, which is evolving rapidly at the moment, yet Sphinx seems to require a frustrating amount of setup and configuration. (We just need some basic API docs.) Is there not a single command you can run inside a python project that will just iterate over all of the packages, modules, classes and functions generating documentation as HTML?

The sphinx-apidoc splats stuff into a directory, and after modifying the conf.py to have our packages in the sys.path we can run "make html", but it only lists packages and modules without documenting any classes or functions.

Thanks!

1 Answer 1

19

The sphinx-apidoc tool will autogenerate stubs for your modules, which might be what you want.

Instructions

  • Make sure the autodoc module was enabled during Sphinx configuration.

    extensions = ['sphinx.ext.autodoc']
    

    within Sphinx's conf.py should do the trick.

  • Make sure conf.py adjusts sys.path accordingly (see the comments at lines 16-19 in the file).

    sys.path.insert(0, os.path.abspath('/my/source/lives/here'))
    
  • Run sphinx-apidoc to generate skeletons.

    sphinx-apidoc -o /my/docs/live/here /my/source/lives/here
    
  • Rebuild the docs. If all goes well, you shouldn't get the following sort of warning:

    mymodule.rst:4: WARNING: autodoc can't import/find module 'mymodule'

  • Your module RSTs should now be populated.

Sign up to request clarification or add additional context in comments.

4 Comments

I tried that, but the generated html just has links to empty modules with no functions or classes in them.
I elaborated a little on the process in the answer. HTH
I had to first pass in output path, for the sphinx-apidoc command
Do I have to run sphinx-apidoc every time I create a new file so it creates a skeleton? I am used to Doxygen where it handles auto documentation on the fly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.