Erste Schritte mit Sphinx / Autodoc: Teil 1
In diesem Artikel werden wir die (sehr) Grundlagen der Generierung von Dokumentation aus Docstrings in Ihrem Python-Code durchgehen. Es ist ein bisschen mühsam, aber nachdem Sie es einmal getan haben, ist es einfach, den Vorgang in jedem neuen Projekt zu wiederholen.Für unsere Zwecke gehen wir davon aus, dass Sie (1) an den Wert der Dokumentation Ihres Codes glauben; (2) Dokumente aus Ihren Docstrings generieren möchten und (3) sich entschieden haben, Sphinx zu verwenden, um die Arbeit zu erledigen.
Schließlich wird davon ausgegangen, dass Sie bereits eine eigene virtuelle Umgebung für Ihre Anwendung eingerichtet haben. Für Interessierte mag ich den pyenv Environment Manager sehr. Es hat sogar einen praktischen Installer.
Sie müssen sphinx über pip
installieren. Sie benötigen mindestens Version 1.3, aber wenn Sie keinen guten Grund haben, sollten Sie die neueste Version installieren.
$ pip install sphinx
Schritt 2: Richten Sie Ihr Projekt mit Quickstart ein
Wenn Sie das Sphinx-Paket installieren, werden auch eine Reihe von Befehlszeilenprogrammen eingerichtet.
Eine davon, sphinx-quickstart
generiert schnell eine grundlegende Konfigurationsdatei und Verzeichnisstruktur für Ihre Dokumentation.
Führen Sie diesen Befehl im Basisverzeichnis Ihres Projekts aus (dh im Git-Repo-Stammverzeichnis). Es wird Ihnen eine Reihe von Fragen stellen, die seine Handlungen bestimmen. Sie können die Standardwerte im Allgemeinen akzeptieren, aber hier sind einige Vorschläge, wann Sie von den Standardwerten abweichen sollten:
Nachdem das Programm ausgeführt wurde, werden Sie feststellen, dass ein neuer Ordner ./docs
in Ihrem Projektverzeichnis vorhanden ist. Darüber hinaus gibt es drei neue Dateien in diesem Ordner: conf.py
index.rst
undMakefile
.
Schritt 3: Einstellen der conf.py Datei
Die Standarddatei conf.py
, die vom Schnellstart-Dienstprogramm generiert wird, ist ungefähr 170 Zeilen lang, daher werde ich hier nicht das Ganze einfügen. Es gibt jedoch einige Elemente, die wir aktualisieren müssen, bevor wir fortfahren können.
Teilen Sie Sphinx den Speicherort Ihres Python-Pakets mit
Als erstes müssen wir angeben, wo sich das Python-Paket, das Ihren Programmcode enthält, in Bezug auf die conf.py
-Datei befindet. Wenn Ihre Verzeichnisstruktur so aussieht:
Sie müssen in der conf.py
-Datei angeben, dass Sphinx eine Verzeichnisebene „nach oben“ gehen muss, um das Python-Paket zu finden.
Am Ende des ersten Abschnitts der Konfigurationsdatei. Kurz vor den General Configuration
Einstellungen sehen Sie Folgendes:
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
Wenn es nicht auskommentiert wäre, würde es anzeigen, dass sich Ihr Paket im selben Verzeichnis befindet wie die conf.py
-Datei. Sie müssen es folgendermaßen ändern:
import os
import sys
sys.path.insert(0, os.path.abspath('..'))
Fügen Sie „Napoleon“ zur Liste der zu verwendenden Sphinx-Erweiterungen hinzu
Standardmäßig versteht Sphinx nur Docstrings, die in traditionellem reStructuredText geschrieben wurden. Wenn Sie das Privileg hatten, mit solchen Docstrings zu arbeiten, wissen Sie, dass sie schwer zu schreiben und überhaupt nicht menschenfreundlich zu lesen sind, wenn Sie sie direkt im Quellcode betrachten.
Die Napoleon-Erweiterung ermöglicht es Sphinx, Docstrings zu verstehen, die in zwei anderen gängigen Formaten geschrieben wurden: NumPy und Google.
Wir müssen nur sphinx.ext.napoleon
zur extensions
Liste hinzufügen. Wenn Sie fertig sind, sollte es so aussehen:
extensions =
Schritt 4: Index aktualisieren.rst
An diesem Punkt konnten wir den Build-Prozess tatsächlich ausführen, um unsere Dokumentation zu generieren. Aber es wäre ziemlich enttäuschend. Hier ist, was wir bekommen würden:
Leave a Reply