2015-12-22 14 views
10

Sto provando a utilizzare autodoc solo per moduli selezionati. Ho creato un file che include:Ignora alcuni moduli in autodoc

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

E viene generato correttamente. Sfortunatamente autodoc continua a cercare di analizzare anche altri file (e fallisce a causa di errori di importazione). So che posso prendere in giro alcuni moduli, ma io voglio una soluzione migliore - fermare la sfinge dal guardarli per cominciare.

Come è possibile verificare che sia caricato solo il modulo richiesto e non (ad esempio) test.other.module.

+0

http://stackoverflow.com/a/21449475/344286 fa ciò che vuoi? Se è così, lo posterò come risposta –

risposta

0

Quindi è rivelato essere uno stupido errore. Poiché alcuni strumenti generano uno scaffold per le fonti di documentazione API, quei file sono stati lasciati in giro e hanno attivato cattive importazioni.

Come questo è stato trovato:

  • sfinge ha più livelli di registrazione di debug che normalmente non si attivano
  • puoi vedere quali linee innescare le importazioni di output di debug come
[autodoc] /path/to/the/doc.rst:158: input: 
.. automodule:: app.module.name 
    :members: 
0

sto vedendo tre possibili cause per questo accada:

  • cache del Sfinge sta causando problemi, e make clean sarebbe risolvere il problema
  • Il modulo si trova in un pacchetto, e il file del pacchetto di __init__.py sta importando questi "altri file" (o per essere più precisi si sta tentando di importarli);
  • Questi "altri file" vengono importati perché è stata impostata PYTHONSTARTUP
Problemi correlati