Créer une documentation de projet Python dans Sphinx

Sphinx est devenu un outil majeur pour écrire de la documentation dans des projets Python, comme Sphinx. Par conséquent, nous allons expliquer ici la procédure de création d'un document de projet Python dans Sphinx.

Installation du Sphinx

Sphinx est expliqué en détail sur le site Web de l'Association des utilisateurs japonais. Bien entendu, la procédure d'installation est également incluse.

Sphinx-Users.jp

Dans l'explication ci-dessus, ʻeasy_install est utilisé, mais si vous utilisez pip install Sphinxou Anaconda / Miniconda, vous pouvez également l'installer avecconda install Sphinx`.

Puisque Sphinx est un outil qui est utilisé en commun par les projets, je pense qu'il est préférable de l'installer globalement, pas dans un environnement virtuel tel que virtualenv.

création de documents

À partir de là, nous allons créer le document. Je pense qu'il est plus facile d'obtenir une image s'il y a un exemple concret, j'ai donc préparé un exemple de référentiel ci-dessous. Je pense qu'il est plus facile de comprendre si vous vous référez ici pour la structure des dossiers et les parties modifiées de la source.

icoxfog417/python_doc_sample

Tout d'abord, créez un dossier appelé docs directement sous le projet Python et créez-y des documents. Allez dans le dossier docs que vous avez créé et exécutez sphinx-quickstart pour créer un modèle.

sphinx-quickstart

Pour plus de détails sur cette commande, reportez-vous à «Explication détaillée de sphinx-quickstart» sur cette page.

Le document est maintenant prêt. Cependant, quelque chose comme une référence API veut naturellement être généré automatiquement à partir du code source. Dans Sphinx, vous pouvez utiliser sphinx-apidoc pour générer des documents à partir de ce code source. La commande suivante génère le document du package Python python_doc_sample dans ʻapis dans le dossier docs` (la commande est exécutée à partir de la racine du projet).

sphinx-apidoc -f -o docs/apis python_doc_sample

Vous disposez maintenant de la documentation et de la référence API de votre projet. Dans les deux cas, le document est écrit au format reStructuredText avec l'extension .rst. Finalement, vous devez le convertir au format HTML. La commande pour cela est sphinx-build, mais elle est plus facile à utiliser make (même sous Windows, elle est disponible parce que make.bat est créé lorsque vous exécutez sphinx-quickstart).

make html

Et, éditez conf.py avant d'exécuter la commande (il devrait être directement sous le dossier docs). En effet, la documentation automatique à partir du code Python n'est pas activée par défaut.

conf.py


...
sys.path.insert(0, os.path.abspath('../')) 

...
extensions = ["sphinx.ext.autodoc"]

Si vous exécutez make html après avoir modifié conf.py, un fichier HTML sera créé dans le dossier _build, et vous pouvez vous référer à la page Web suivante.

image

Et à partir du lien Index du module, vous pouvez rechercher / référencer la documentation API créée à partir des packages de votre projet.

image

Si vous écrivez correctement les commentaires, cela ressemblera à ce qui suit.

image

Après cela, après la mise à jour du document (.rst), la page HTML sera mise à jour avec make html. Cependant, si vous souhaitez modifier le code source, vous devez exécuter sphinx-apidoc, et si cela vous pose problème, vous pouvez créer un simple batch ou script ([Sample](https: // github.). com / icoxfog417 / python_doc_sample / blob / master / make_docs.py)).

Les commandes présentées ci-dessus sont référencées ci-dessous, veuillez donc vous y référer lorsque vous vérifiez la signification des options.

Sphinx Documentation

Publication de la documentation

Le document créé étant une page HTML, vous pouvez facilement le publier sur le serveur. Pour les référentiels GitHub, vous pouvez utiliser des pages GitHub.

Creating Project Pages manually

Poussez le dossier _build où la page HTML est créée vers gh-pages et la publication est terminée. Cependant, veuillez noter que vous avez besoin d'un fichier .nojekyll pour accéder aux fichiers statiques.

Vous pouvez maintenant créer et publier la documentation de votre projet Python dans Sphinx!

Recommended Posts

Créer une documentation de projet Python dans Sphinx
Écrire de la documentation dans Sphinx avec Python Livereload
Créez automatiquement la documentation de l'API Python avec Sphinx
Créer Spatia Lite en Python
Créer une fonction en Python
Créer un dictionnaire en Python
[Note] Projet Euler en Python (problème 1-22)
Programmation fonctionnelle dans Python Project Euler 3
Créer un conteneur DI avec Python
Projet Euler # 5 "Minimum Multiple" en Python
Créer un fichier binaire en Python
Créez Gmail en Python sans utiliser l'API
Créer automatiquement la documentation Python avec Sphinx
Programmation fonctionnelle dans Python Project Euler 2
Projet Euler # 15 "Lattice Path" en Python
Créer une chaîne aléatoire en Python
Projet Euler # 4 "Calligraphie maximum" en Python
Créer et lire des paquets de messages en Python
Créez vos propres commandes Linux en Python
Projet Euler # 3 "Maximum Prime Factors" en Python
Créer un nouveau projet de calcul numérique Python
Projet Euler # 11 "Produit maximum dans la grille" en Python
Créer ScriptableObject en Python lors de la construction d'ADX2
[LLDB] Créez votre propre commande avec Python
Créer une application GUI simple en Python
Créer des pièces de concepteur Qt avec Python (PyQt)
Projet Euler # 7 "1000 1er nombre premier" en Python
Projet Euler # 16 "Somme des pouvoirs" en Python
Projet Euler # 9 "Numéro spécial Pitagolas" en Python
[GPS] Créer un fichier kml avec Python
Projet Euler # 14 "Colonne de nombre de collats la plus longue" en Python
Projet Euler # 2 "Even Fibonacci Number" en Python
Projet Euler # 17 "Nombre de caractères" en Python
Projet Euler # 1 "Multiple de 3 et 5" en Python
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
SendKeys en Python
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python