Versuchen Sie, Python-Dokumente automatisch mit Sphinx zu generieren

Python-Dokumentation automatisch erstellen

Dies ist ein Memo über das Verfahren zum automatischen Erstellen eines Python-Dokuments mit Sphinx. Bitte verzeihen Sie mir vorerst, denn es handelt sich um eine Zusammenfassung der Situation des "Umzugs". Sphinx kann automatisch in Python-Code geschriebene Kommentare in HTML konvertieren. Dieses Mal werden wir versuchen, das Dokument mit einer Konfiguration zu automatisieren, in der der Quellcode mehrerer Verzeichnisse, wie unten gezeigt, verknüpft und auf einer gemeinsamen oberen Seite aufgelistet ist.

 - dirA
    - test.py
    - test2.py
 - dirB
    - testB.py
 - docs 

Anfangs ist docs leer, da dies das Verzeichnis ist, in dem die automatisch generierten Dokumente gespeichert werden. Ausführungsumgebung: Ubuntu 18.04 Python:3.6

0. Vorbereitung des Python-Programms

Jeder für das Experiment vorbereitete Python-Code enthält einen Kommentar im Quellcode, wie unten gezeigt. Wenn Sie einen Kommentar in die Dokumentationszeichenfolge schreiben, wird die Beschreibung bei Verwendung von Sphinx automatisch zur HTML-Datei hinzugefügt. Fügen Sie gegebenenfalls eine der Dokumentzeichenfolgen, Google Style usw. hinzu. https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html

class test():
    """test Class
    """
    
    def __init__(self):
        self.val = 0
    
    def SetVal(self, val):
       """SetVal function
       """
       self.val=val

    def GetVal(self):
        """GetVal function
        """
        return self.val

1. Installieren Sie die Sphinx

$ sudo apt install python3-sphinx

2. Generieren Sie ein Beispiel-Makefile

2.1 Führen Sie den Sphinx-Schnellstart aus

Der Befehl sphinx-quickstart generiert eine Reihe von Makefiles zum Erstellen von HTML-Dateien im angegebenen Verzeichnis. Wenn Sie den Befehl ausführen, werden Sie aufgefordert, Fragen und Antworten interaktiv einzugeben. Stellen Sie diesmal nur Folgendes ein und führen Sie den Rest standardmäßig aus.

$sphinx-quickstart docs
...
ProjectName: sphinxTest
Auther name: hoge
Language: ja

Nach dem Ausführen der obigen Schritte werden einige Dateien und Verzeichnisse unter docs erstellt. Bearbeiten Sie dann die generierte Datei für die Umgebung, in der Sie das Dokument generieren möchten.

2.2 Conf.py bearbeiten

import os
import sys
sys.path.insert(0, os.path.abspath('../dirA'))
sys.path.insert(0, os.path.abspath('../dirB'))
extensions = ["sphinx.ext.autodoc","sphinx.ext.autosummary"]
html_theme = 'default'

3. Generieren Sie automatisch Sphinx-kompatible Dokumente

3.1 Führen Sie sphinx-apidoc aus

Führen Sie den folgenden Befehl aus, um das in den beiden Verzeichnissen vorhandene Codedokument automatisch zu generieren.

$ sphinx-apidoc -f -o docs/dirA ./dirA
$ sphinx-apidoc -f -o docs/dirB ./dirB

Nach dem Ausführen des obigen Befehls unter docs dirA / modules.rst, test.rst, test2.srt werden generiert. Jede Datei wird in einem Format namens reStructeredText geschrieben. Siehe unten für Details. https://www.sphinx-doc.org/ja/master/usage/restructuredtext/basics.html modules.rst ist eine Datei, die automatisch generiert wird, wenn shinx-apidoc ausgeführt wird. Eine Liste der im Zielverzeichnis vorhandenen Dateien wird automatisch generiert. Diesmal lautet die Beschreibung beispielsweise wie folgt.

dirA
====

.. toctree::
   :maxdepth: 4

   test
   test2

Dies bedeutet, dass modules.rst eine Baumstruktur hat, die auf test.rst und test2.rst verweist.

3.2 Bearbeiten von index.rst

Beim Ausführen von sphinx-quickstart wurde eine Datei mit dem Namen ./docs/index.rst generiert. Verwenden Sie dies als oberste Seite der HTML-Datei. Wenn Sie aus index.rst auf die Module jedes Verzeichnisses verweisen, werden die Dateien in jedem Verzeichnis automatisch zum HTML-Dokument hinzugefügt. Ändern Sie also ./docs/index.rst.

Welcome to test's documentation!
================================

.. toctree::
   :maxdepth: 2
   :caption: Contents:

   ./dirA/modules
   ./dirB/modules
<Unten weggelassen>

4. Erstellen Sie die HTML-Datei

Erstellen Sie schließlich die HTML-Datei

$ sphinx-build -b html ./docs ./docs/_build/

Dadurch wird automatisch eine HTML-Datei unter _build generiert. Doppelklicken Sie auf ./docs/_build/index.html Die diesmal erstellte Datei wird wie folgt angezeigt. toppage.png

codepage.png

das ist alles. Danke für deine harte Arbeit.

Recommended Posts

Versuchen Sie, Python-Dokumente automatisch mit Sphinx zu generieren
Erstellen Sie automatisch eine Python-Dokumentation mit Sphinx
[Evangelion] Versuchen Sie, mit Deep Learning automatisch Asuka-ähnliche Linien zu erzeugen
Anfänger generieren automatisch Dokumente mit Pytorchs LSTM
Versuchen Sie, Farbfilme mit Python zu reproduzieren
Versuchen Sie, sich mit Python bei qiita anzumelden
Erstellen Sie automatisch eine Python-API-Dokumentation mit Sphinx
Versuchen Sie, ein Bild mit Entfremdung zu erzeugen
Versuchen Sie es mit Python.
Zusammenfassung des Bibliotheksvergleichs zum Generieren von PDF mit Python
Versuchen Sie automatisch, Enum in Python 3.6 automatisch zu bewerten
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Versuchen Sie, Fische mit Python + OpenCV2.4 (unvollendet) zu erkennen.
Versuchen Sie, das Programmier-Herausforderungsbuch mit Python3 zu lösen
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Versuchen Sie, das Problem der Zuweisung von Schulungsärzten mit Python zu lösen
Probieren Sie die DB-Operation mit Python aus und visualisieren Sie sie mit d3
Versuchen Sie, den Boden durch Rekursion herauszufordern
Stellen Sie mit Python eine Verbindung zu BigQuery her
Versuchen Sie, Python selbst zu verstehen
Generieren Sie XML (RSS) mit Python
Post to Slack mit Python 3
Versuchen Sie, Python mit Try Jupyter auszuführen
Schalten Sie Python mit Alternativen auf 2.7 um
Schreiben Sie mit Python in csv
Versuchen Sie die Gesichtserkennung mit Python
Führen Sie eine Twitter-Suche in Python durch und versuchen Sie, Sätze mit der Markov-Kette zu generieren.
Ich habe versucht, automatisch die Zeichenfolge zu generieren, die mit Python in Mr. Adjustment eingegeben werden soll
Versuchen Sie, verschiedene Informationen anzuzeigen, die für das Debuggen mit Python nützlich sind
Erstellen Sie einen Mastodon-Bot mit einer Funktion, die automatisch mit Python antwortet
[AWS] Versuchen Sie, die Python-Bibliothek mit SAM + Lambda (Python) zur Ebene hinzuzufügen.
Ich möchte automatisch an Online-Kursen mit Python + Selen teilnehmen!
Versuchen Sie, ein Unterfenster mit PyQt5 und Python zu öffnen
Generieren Sie mit Python automatisch eine Häufigkeitsverteilungstabelle auf einmal
Versuchen Sie, den Betrieb von Netzwerkgeräten mit Python zu automatisieren
Es ist Halloween, also werde ich versuchen, es mit Python zu verstecken
Versuchen Sie, die verstümmelten Zeichen im angehängten Dateinamen mit Python zu entschlüsseln
So melden Sie sich mit Python bei AtCoder an und senden automatisch
Versuchen Sie es mit Python + Beautiful Soup
Python: So verwenden Sie Async mit
Link, um mit Python zu beginnen
[Python] Mit Python in eine CSV-Datei schreiben
Schön dich mit Python zu treffen
Erste Schritte mit Sphinx. Generieren Sie Docstring mit Sphinx
Versuchen Sie, sich mit ONNX Runtime zu profilieren
Konvertieren Sie die Liste mit Python in DataFrame
MP3 → WAV-Konvertierung mit Python
[Python] Kopierskript zum Generieren eines Kopierprotokolls
Schwanzrekursion mit Python2 durchführen
Erste Schritte mit Python
Generieren Sie automatisch ein Modellbeziehungsdiagramm mit Django
Versuchen Sie, die cloudmonkey-CLI in python3 -1 zu konvertieren
Was tun mit PYTHON Release?