Sphinx: Wie kann man Importe in Automodule ausschließen?

10

Ich habe ein Himbeer-Pi-Projekt in Python geschrieben, das RPi.GPIO-Modul verwendet. Die ganze Arbeit am Code wird in einem Windows-Feld ausgeführt, in dem RPi.GPIO nicht installiert wird und jedes Mal, wenn ich versuche, autodoc auszuführen, stürzt es ab, dass es RPi.GPIO nicht importieren kann.

%Vor%

Irgendwie in der Nähe?

    
pandasauce 08.04.2013, 21:48
quelle

2 Antworten

15

Es gibt keine Möglichkeit, Sphinx zu empfehlen, einige Importe auszuschließen. Bei Verwendung von Autodoc müssen alle dokumentierten Module sauber importiert werden können.

Sie können das Problem möglicherweise umgehen, indem Sie Mocking ausführen. Hier ist ein Artikel, der die Lösung für ein Problem beschreibt, das Ihnen sehr ähnlich scheint: Ссылка . Hier ist ein kleines Codebeispiel (das zu conf.py hinzugefügt werden soll):

%Vor%

Möglicherweise müssen Sie Python-Mock installieren, damit das obige funktioniert: sudo apt-get install python-mock

Aktualisieren

Seit Sphinx 1.3 ist es einfacher, das Spottbild einzurichten. Fügen Sie einfach die zu mokierenden Module dem Konfigurationswert autodoc_mock_imports hinzu.

    
mzjn 09.04.2013, 21:04
quelle
3

Neben dem Mocking von Modulen musste ich auch Aufrufe simulieren, die nur in meinem eingebetteten System Sinn ergaben (zum Beispiel einen Aufruf einer Funktion read_reg() von dem Modul examplemod , das ein Register von einem FPGA über SPI liest).

%Vor%

Beachten Sie, dass Sie python-mox: sudo apt-get install python-mox

benötigen

Referenz: Wie sphinx-Dokumentation für Python-Code generiert wird, der in einem eingebetteten System ausgeführt wird

    
jcarballo 09.10.2013 17:06
quelle