Sphinx autosummary "toctree contient des références à inexistants document" mises en garde

j'essaie de créer automatiquement des Docs api pour une grosse base de code python en utilisant Sphinx.

j'ai essayé d'utiliser build_modules.py et sphinx-apidoc. Avec l'un ou l'autre, je peux obtenir des rst docs créés avec succès dans mon répertoire de sortie pour les paquets et les modules de haut niveau.

cependant, quand je construis en utilisant

make html

il donne des milliers d'erreurs de ce type:

<autosummary>:None: WARNING: toctree contains reference to nonexisting document 'rstDocs/src.Example1.class1.method1'

pour chaque une seule classe et méthode dans la base de données. Avec quelques expérimentations, je pense que j'ai découvert que les directives autosummary/autoclass sont en train de créer des toctrees qui s'attendent à ce qu'il y ait des fichiers rst pour chaque classe et chaque méthode.

mis à part les Avertissements, la documentation semble bien fonctionner, mais je voudrais m'en débarrasser et je pense que j'ai peut-être mal configuré quelque chose.

j'ai aussi essayé de nipype/outils à peu près à la même effet.

j'ai modifié apigen.py et build_modref_templates.py pour créer des entailles rst pour chacun de ces documents" manquants", avec autoclass/autofunction/automethods selon le cas. Cependant, la construction prend beaucoup de temps (10 minutes) et finit par s'écraser à cause d'erreurs de mémoire sur la dernière étape de construction.

voici un exemple de fichier RST de module qui crée tous les Avertissements:

src Package
===========

:mod:`src` Package
------------------

.. automodule:: src.__init__
    :members:
    :undoc-members:
    :show-inheritance:

:mod:`Example1` Module
------------------------------------

.. automodule:: src.Example1
    :members:
    :undoc-members:
    :show-inheritance:

:mod:`Example2` Module
------------------

.. automodule:: src.Example2
    :members:
    :undoc-members:
    :show-inheritance:

Merci pour tout conseil sur la façon de faire ces avertissements résoudre! Je voudrais rester à l'écart de toute solution qui implique de modifier les fichiers site-package de sphinx.

36
demandé sur Jon Clements 2012-08-31 02:15:00

2 réponses

désolé pour une réponse si tardive (si cela peut être considéré comme cela) mais j'ai trouvé ce lien qui discute ce qui peut vous arriver:

https://github.com/phn/pytpm/issues/3#issuecomment-12133978

l'idée que si vous avez un racleur Doc spécial dans votre code de documentation qui est en train de construire la documentation autosummary après que autosummary a déjà couru peut être quelque chose à examiner si vous avez toujours ceci question. Bien que, je ne suis pas sûr combien d'aide ce sera.

la clé du lien est d'ajouter: numpydoc_show_class_members = False à conf.py

38
répondu djhoese 2015-04-04 19:43:56

si vous utilisez l'extension numpydoc , vous pouvez envisager de l'enlever et d'utiliser sphinx.ext.napoleon à la place.

depuis la version 1.3, num Py et Google style docstrings sont en fait pris en charge par cette extension.

Supprimer numpydoc et utiliser sphinx.ext.napoleon dans votre conf.py va donc probablement résoudre votre problème.


Sources

9
répondu Kurt Bourbaki 2017-05-11 16:28:22