Как настроить buildout для создания документации sphinx с помощью bin/sphinxbuilder

В моем файле buildout.cfg у меня есть такой код:

parts =
    ...
    sphinxbuilder

Далее в том же файле:

eggs=
   ...
   jinja2
   markupsafe
   sphinx

а затем в конце файла:

[sphinxbuilder]
recipe = collective.recipe.sphinxbuilder
source = ${buildout:directory}/docs-src
build = ${buildout:directory}/docs

Я делаю:

bin/buildout

который дает вывод (в общем случае: ОК):

Updating sphinxbuilder.
collective.recipe.sphinxbuilder: writing MAKEFILE..
collective.recipe.sphinxbuilder: writing BATCHFILE..
collective.recipe.sphinxbuilder: writing custom sphinx-builder script..

В папке с яйцами у меня есть Sphinx eeg.

После buildout, в каталоге проекта у меня есть один, новый каталог: docs. то я запустил команду:

bin/sphinx-quickstart

и как root path for the documentation я установил docs

тогда я редактирую docs/conf.py и раскомментирую

sys.path.insert(0, os.path.abspath('.'))

Я запускаю команду bin/sphinxbuilder и получаю ошибку:

Makefile:12: *** The 'sphinx-build' command was not found. 
Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the 'sphinx-build' executable.
Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/. Stop.

Основные проблемы: (1) Как заставить sphinx работать автоматически с помощью buildout? (2) Как установить правильный путь к проектным модулям (приложениям) в файлах .rst? (3) Где разместить файл conf.py?

Ответ 1

В окнах здесь, но я, похоже, напоминаю аналогичную проблему.

расширение следующего cfg обеспечивает две вещи: 1) все точки входа, которые мы генерируем, имеют доступ к яйцам сфинкса 2) части, которые полагаются на точки входа sphinx, будут выполнены - после того, как будут созданы те точки входа

[sphinx]
eggs = 
    sphinx
    <if you have theme eggs or other extensions, put em here>

parts =
    sphinx.console_scripts

[sphinx.console_scripts]
recipe = zc.recipe.egg
dependent-scripts = true
eggs = 
    ${sphinx.eggs}
    ${buildout:eggs}

Используя это, вы также можете добавлять части, которые полагаются на исполняемые файлы build/apidoc, и создание вашей документации становится частью сборки с одним щелчком мыши:

[sphinx.apidoc]
recipe = plone.recipe.command
command = ${buildout:bin-directory}\sphinx-apidoc.exe <all your flags/settiongs based on buildout>