Erstellen Sie eine Python-Projektdokumentation in Sphinx

Sphinx hat sich zu einem wichtigen Werkzeug zum Schreiben von Dokumentation in Python-Projekten wie Sphinx entwickelt. Daher erklären wir hier die Vorgehensweise zum Erstellen eines Python-Projektdokuments in Sphinx.

Sphinx-Installation

Sphinx wird auf der Website der Japan Users Association ausführlich erklärt. Natürlich ist auch der Installationsvorgang enthalten.

Sphinx-Users.jp

In der obigen Erklärung wird "easy_install" verwendet. Wenn Sie jedoch "pip install Sphinx" oder "Anaconda / Miniconda" verwenden, können Sie es auch mit "conda install Sphinx" installieren.

Da Sphinx ein Tool ist, das von Projekten gemeinsam verwendet wird, ist es meiner Meinung nach besser, es global zu installieren, nicht in einer virtuellen Umgebung wie virtualenv.

Dokumenterstellung

Von hier aus erstellen wir das Dokument. Ich denke, dass es einfacher ist, ein Bild zu erhalten, wenn es ein konkretes Beispiel gibt. Deshalb habe ich unten ein Beispiel-Repository vorbereitet. Ich denke, es ist einfacher zu verstehen, wenn Sie hier auf die Ordnerstruktur und die geänderten Teile der Quelle verweisen.

icoxfog417/python_doc_sample

Erstellen Sie zunächst einen Ordner mit dem Namen "docs" direkt unter dem Python-Projekt und erstellen Sie dort Dokumente. Gehen Sie zu dem von Ihnen erstellten Ordner "docs" und führen Sie "sphinx-quickstart" aus, um eine Vorlage zu erstellen.

sphinx-quickstart

Einzelheiten zu diesem Befehl finden Sie unter "Ausführliche Erläuterungen zum Sphinx-Schnellstart" auf dieser Seite.

Das Dokument ist jetzt fertig. So etwas wie eine API-Referenz möchte natürlich automatisch aus dem Quellcode generiert werden. In Sphinx können Sie "sphinx-apidoc" verwenden, um Dokumente aus diesem Quellcode zu generieren. Der folgende Befehl generiert das Dokument des Python-Pakets python_doc_sample in apis im Ordner docs (Befehl wird vom Stammverzeichnis des Projekts ausgeführt).

sphinx-apidoc -f -o docs/apis python_doc_sample

Sie haben jetzt die Dokumentation und API-Referenz für Ihr Projekt. In beiden Fällen wird das Dokument im Format reStructuredText mit der Erweiterung ".rst" geschrieben. Schließlich müssen Sie dies in das HTML-Format konvertieren. Der Befehl dafür lautet "sphinx-build", aber es ist einfacher, "make" zu verwenden (selbst unter Windows ist er verfügbar, da "make.bat" erstellt wird, wenn Sie "sphinx-quickstart" ausführen).

make html

Bearbeiten Sie "conf.py", bevor Sie den Befehl ausführen (er sollte sich direkt unter dem Ordner "docs" befinden). Dies liegt daran, dass die automatische Dokumentation aus Python-Code standardmäßig nicht aktiviert ist.

conf.py


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

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

Wenn Sie make html ausführen, nachdem Sie conf.py geändert haben, wird eine HTML-Datei im Ordner _build erstellt, und Sie können auf die folgende Webseite verweisen.

image

Über den Link Modulindex können Sie die API-Dokumentation suchen / referenzieren, die aus den Paketen in Ihrem Projekt erstellt wurde.

image

Wenn Sie die Kommentare richtig schreiben, sieht es folgendermaßen aus.

image

Danach wird nach dem Aktualisieren des Dokuments (.rst) die HTML-Seite mit make html aktualisiert. Wenn Sie jedoch den Quellcode ändern möchten, müssen Sie "sphinx-apidoc" ausführen. Wenn dies problematisch ist, können Sie einen einfachen Stapel oder ein Skript erstellen ([Beispiel](https: // github.). com / icoxfog417 / python_doc_sample / blob / master / make_docs.py)).

Auf die oben eingeführten Befehle wird unten verwiesen. Bitte überprüfen Sie sie, wenn Sie die Bedeutung von Optionen überprüfen.

Sphinx Documentation

Dokumentation veröffentlichen

Da es sich bei dem erstellten Dokument um eine HTML-Seite handelt, können Sie es problemlos auf dem Server veröffentlichen. Für GitHub-Repositorys können Sie GitHub-Seiten verwenden.

Creating Project Pages manually

Schieben Sie den Ordner "_build", in dem die HTML-Seite erstellt wurde, auf "gh-pages" und die Veröffentlichung ist abgeschlossen. Beachten Sie jedoch, dass Sie eine .nojekyll-Datei benötigen, um auf statische Dateien zugreifen zu können.

Sie können jetzt Ihre Python-Projektdokumentation in Sphinx erstellen und veröffentlichen!

Recommended Posts

Erstellen Sie eine Python-Projektdokumentation in Sphinx
Erstellen Sie automatisch eine Python-API-Dokumentation mit Sphinx
Erstellen Sie Spatia Lite in Python
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
[Hinweis] Project Euler in Python (Problem 1-22)
Funktionale Programmierung in Python Project Euler 3
Erstellen Sie einen DI-Container mit Python
Projekt Euler # 5 "Minimum Multiple" in Python
Erstellen Sie eine Binärdatei in Python
Erstellen Sie Google Mail in Python ohne Verwendung der API
Erstellen Sie automatisch eine Python-Dokumentation mit Sphinx
Funktionsprogrammierung in Python Project Euler 2
Projekt Euler # 15 "Gitterpfad" in Python
Erstellen Sie eine zufällige Zeichenfolge in Python
Projekt Euler # 4 "Maximale Kalligraphie" in Python
Erstellen und lesen Sie Messagepacks in Python
Erstellen Sie Ihre eigenen Linux-Befehle in Python
Projekt Euler # 3 "Maximale Primfaktoren" in Python
Erstellen Sie ein neues numerisches Python-Berechnungsprojekt
Projekt Euler # 11 "Maximales Produkt im Raster" in Python
Erstellen Sie ScriptableObject in Python, wenn Sie ADX2 erstellen
[LLDB] Erstellen Sie Ihren eigenen Befehl mit Python
Erstellen Sie eine einfache GUI-App in Python
Erstellen Sie Qt-Designerteile mit Python (PyQt)
Projekt Euler # 7 "1000 1. Primzahl" in Python
Projekt Euler # 16 "Summe der Kräfte" in Python
Projekt Euler # 9 "Spezielle Pitagolas-Nummer" in Python
[GPS] Erstellen Sie eine kml-Datei mit Python
Projekt Euler # 14 "Längste Spalte mit Kollatennummern" in Python
Projekt Euler # 2 "Gerade Fibonacci-Zahl" in Python
Projekt Euler # 17 "Anzahl der Zeichen" in Python
Projekt Euler # 1 "Vielfaches von 3 und 5" in Python
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
SendKeys in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python