Настройка автодока Sphinx с существующим проектом

#python-sphinx #autodoc #sphinx-apidoc

#python-sphinx #автодок #sphinx-apidoc

Вопрос:

Я совершенно новичок в Sphinx и просмотрел несколько часов учебных пособий, но не смог найти ответ на свой вопрос

У меня есть текущая структура проекта, подобная следующей

 -project folder
 |-sub folder 1
 | |- sub folder 1.a
 |    | - ...
 |-sub folder 2
 | |- sub folder 2.a
 |    | - ...
 |-sub folder 3
 | |- sub folder 3.a
 |    | - ...
 |- .py files
 |...
 |- conf.py
 |- index.rst
 |- Makefile
 |- _build/
 |  |-doctrees/
 |  |-html/
 |    |...(all the html files generated by "make html")
 

Я включил следующее в свой conf.py

 extensions = ['autoapi.extension']
# Document Python Code
autoapi_type = 'python'
autoapi_dir = '../project folder'
 

внутри каждой из вложенных папок у меня есть файлы .py, которые содержат классы, функции, модули, элементы, которые все должны быть задокументированы. Есть ли способ, которым sphinx будет анализировать текущую папку проекта и все ее подкаталоги в поисках файлов .py для autodoc? Если да, то как мне настроить свой index.rst и conf.py файл, чтобы это произошло?

Ошибка, которую я вижу, заключается в следующем:

 Removing everything under '_build'...
Running Sphinx v1.8.5  
making output directory...  

Extension error: 
You must configure an autoapi_dirs setting  
Makefile:19: recipe for target 'html' failed 
make: *** [html] Error 2 
 

Комментарии:

1. Какое сообщение об ошибке вы получаете? sphinx-apidoc следует подобрать пакеты Python, которые по определению должны включаться __init__.py в каждый каталог, и записывает .rst исходные файлы. Затем вы запускаете make html создание HTML-версии своих документов.

2. @StevePiercy Я добавил свою ошибку выше. Спасибо за быстрый ответ!!

Ответ №1:

Ошибка явная: You must configure an autoapi_dirs setting . В настройках допущена опечатка conf.py , в настройках пропущена буква «s» autoapi_dir . См . Значение конфигурации autoapi_dirs для autoapi .

Комментарии:

1. Что вы имеете в виду, опуская «s»? Можете ли вы привести явный пример, используя мой conf.py настройка выше? Вы хотите сказать, что мой «autoapi_dir» на самом деле должен быть «autoapi_dirs»

2. Это исправило эту проблему! Очень признателен!