2015-12-22 13 views
10

Ich versuche Autodoc nur für ausgewählte Module zu verwenden. Ich habe eine Datei erstellt, die Folgendes enthält:Einige Module in Autodoc ignorieren

.. automodule:: some.specific.module 
    :members: 

Und es wird korrekt generiert. Leider versucht Autodoc weiterhin, andere Dateien zu analysieren (und scheitert aufgrund von Importfehlern). Ich weiß, dass ich einige Module ausspionieren kann, aber ich möchte eine bessere Lösung - haltet die Sphinx davon ab, sie zuerst anzuschauen.

Wie kann ich sicherstellen, dass nur das angeforderte Modul geladen ist, und nicht (zum Beispiel) test.other.module.

+0

Macht http://stackoverflow.com/a/21449475/344286 was Sie wollen? Wenn ja, werde ich es als Antwort posten –

Antwort

0

So ein dummer Fehler erwiesen. Da einige Tools ein Gerüst für API-Dokumentationsquellen generieren, wurden diese Dateien herumliegen gelassen und führten zu fehlerhaften Importen.

Wie dies gefunden:

  • Sphinx hat mehrere Ebenen der Debug-Protokollierung, die normalerweise nicht aktiviert werden
  • Sie, welche Linien auslösen Importe von Debug-Ausgaben wie
[autodoc] /path/to/the/doc.rst:158: input: 
.. automodule:: app.module.name 
    :members: 
sehen
0

Ich sehe drei mögliche Ursachen für dies geschehen kann:

  • Sphinx Cache Probleme verursacht, und make clean würde lösen das Problem
  • Ihr Modul in einem Paket befindet, und die __init__.py Datei Paket importiert diese "anderen Dateien" (oder um genauer zu sein, versucht importieren);
  • Diese „andere Dateien“ importiert werden, weil Sie PYTHONSTARTUP es stellte sich gesetzt haben
Verwandte Themen