Я постараюсь ответить, поставив «канонический» подход рядом с вашим делом.
Обычный подход «начало работы» состоит из следующих шагов:
-
создайте каталог doc
в каталоге project
(именно из этого каталога выполняются команды следующих шагов).
sphinx-quickstart
(выбирается отдельно source
с build
).
sphinx-apidoc -o ./source ..
make html
Это даст следующую структуру:
C:\Project
|
| agent.py
|
|---docs
| | make.bat
| | Makefile
| |
| |---build
| |
| |---source
| | conf.py
| | agent.rst
| | index.rst
| | modules.rst
В вашем conf.py
вы добавите (после шага 2):
sys.path.insert(0, os.path.abspath(os.path.join('..', '..')))
и в index.rst
вы будете ссылаться modules.rst
:
Welcome to Project's documentation!
================================
.. toctree::
:maxdepth: 2
:caption: Contents:
modules
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
Теперь сравните вышесказанное с тем, что у вас есть - из того, что вы поделились в своем вопросе:
C:\Project
|
| agent.py
|
|---apidoc
| | agent.rst
| | conf.py
| |
| |-- _build
Вы набрали: sphinx-build -b html apidoc apidoc/_build
и в вашем conf.py
:
sys.path.insert(0, os.path.abspath('.'))
В вашей трассировке стека ошибок сказано, что не удалось найти модуль
agent
. Вероятно, это связано с тем, что вы не поднялись на go 1 уровень в вашем
conf.py
(он указывает на путь с
.rst
, а не на путь с
.py
), это должно работать:
sys.path.insert(0, os.path.abspath('..'))
. Кроме того, если вы не редактировали / не подключали
modules.rst
к своему
index.rst
, вы, скорее всего, увидите только этот модуль.
Вы можете обратить внимание на сигнатуры команд сфинкса во время игры:
sphinx-apidoc [OPTIONS] -o <OUTPUT_PATH> <MODULE_PATH>
sphinx-build [options] <sourcedir> <outputdir> [filenames …]
<sourcedir>
указывает, где находятся .rst
, и <MODULE_PATH>
, где .py
есть. <OUTPUT_PATH>
туда, где .rst
, и <outputdir>
туда, где .html
.
Также обратите внимание, что вы упомянули: «каталог проекта как текущий рабочий каталог». Я видел "рабочий каталог", упомянутый в потоках sphinx в stackoverflow, взаимозаменяемо как в качестве базового каталога Project
, так и каталога docs
. Однако, если вы будете искать в документации Sphinx "рабочий каталог" , вы не найдете упоминания о нем.
Наконец, есть преимущество использования структуры файла / каталога в "" Приступая к работе ". По сути, он «помещает вас на одну и ту же страницу» с большинством потоков в теге Sphinx, и таким образом облегчает умственную работу по сопоставлению дел с различными структурами каталогов / файлов.
Надеюсь, это поможет.