9 Stimmen

Wird Sphinx meinen Code beim Ausführen von 'make html' ausführen?

Ich habe eine ziemlich große Codebasis geerbt, für die ich eine HTML-Dokumentation erstellen möchte. Da sie in Python geschrieben ist, habe ich mich entschieden, Sphinx zu verwenden, weil die Benutzer des Codes mit dem Design und der Funktionalität der Python-Dokumentation vertraut sind, die mit Sphinx erstellt wird. Ich habe den Befehl sphinx-apidoc verwendet, um automatisch die .rst-Dateien zu erstellen. Ich habe den Modulpfad in sys.path importiert, damit Sphinx den Code finden kann.

Bisher so gut. Allerdings, wenn ich versuche, das HTML mit dem Befehl make html zu erstellen, tauchen viele Tracebacks auf und einige der Beispiele in der Codebasis scheinen ausgeführt zu werden. Was kann der Grund dafür sein und wie kann ich das verhindern?

13voto

mzjn Punkte 45393

Beim Verwenden von autodoc importiert Sphinx die dokumentierten Module, sodass alle Modulcode auf Ebene ausgeführt wird. Dies geschieht jedes Mal, wenn Sie "make html" ausführen. In diesem Sinne führt Sphinx Ihren Code "aus".

Sie müssen möglicherweise Ihren Code etwas anders organisieren, um die Fehler zu beheben (verschieben Sie Modulcode in Funktionen). Sehen Sie sich diese Frage für ein Beispiel dessen, was passieren kann.

Das ist meine Vermutung, aber es könnte nicht die ganze Geschichte sein. Es ist schwer, mehr zu sagen, ohne zusätzliche Informationen.

3voto

Anthony Petrillo Punkte 167
def main():

    print('Hallo Welt')

if __name__ == '__main__':

    main()

Auf diese Weise wird Ihr Code nicht ausgeführt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X