Breve versione
- corsa
sphinx-apidoc -o . mymodule
- rimuovere il commento e modificare
conf.py
. Per questo esempio, sys.path.insert(0, os.path.abspath('mymodule'))
- re-run
make html
Risposta lunga
posso riprodurre il problema con questo modulo di esempio:
$cat mymodule/mymodule.py
def fn1():
'''First function'''
pass
def fn2():
'''Second function'''
pass
Esecuzione sphinx-quickstart
produce il seguente albero:
$tree
.
├── Makefile
├── _build
├── _static
├── _templates
├── conf.py
├── index.rst
├── mymodule
└── mymodule.py
$cat index.rst
.. sphinx example documentation master file, created by
sphinx-quickstart on Mon Mar 30 15:28:37 2015.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
con predefinito index.rst
:
Welcome to sphinx example's documentation!
==========================================
Contents:
.. toctree::
:maxdepth: 2
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
esecuzione make html
a questo punto non produce alcun output in _build/html/py-modindex.html
. Questo perché sphinx
ha bisogno di file .rst che descrivano ogni modulo. Fortunatamente è facile da produrre usando sphinx-apidoc -o . mymodule
. Questo dà due nuovi file, di cui solo il mymodule.rst
è necessario per risolvere il problema di modindex nella domanda.
$head *mod*rst
==> modules.rst <==
mymodule
========
.. toctree::
:maxdepth: 4
mymodule
==> mymodule.rst <==
mymodule module
===============
.. automodule:: mymodule
:members:
:undoc-members:
:show-inheritance:
esecuzione make html
a questo punto ancora non funziona. Ma decommentare e cambiare la riga che inizia con sys.path.insert
in conf.py
risolve le cose.
mio è: sys.path.insert(0, os.path.abspath('mymodule'))
PS: per evitare un ulteriore avviso, aggiungere modules
alla Contents:
toctree nel file index.rst
.
Hai "*: ref:' modindex' "nel tuo file index.rst? Per favore, fornisci il contenuto del file index.rst. – alecxe
Stai utilizzando l'autodoc o stai aggiungendo moduli al modindex manualmente? Se si utilizza autodoc, è necessario [includere ''sphinx.ext.autodoc'' nell'elenco delle estensioni in' conf.py'] (http://sphinx-doc.org/tutorial.html#autodoc). Se manuale, usa il ['..py: module: 'direttiva per ogni modulo che vuoi elencato nell'indice] (http://sphinx-doc.org/domains.html#directive-py:module). Controlla la generazione di errori re: ruoli e direttive, dato che modindex non si costruisce se ci sono errori. Ho avuto questo stesso problema all'inizio, ma il controllo degli errori lo ha risolto. –
Ho lo stesso problema di Karin, dove l'impostazione di autodoc ha seguito i checkpoint di Mark. Tuttavia, non è ancora generato monindex.html. Ho perso qualche passaggio? –