Blender использует собственный Python. Когда я пишу такой код Python
import bpy
print(bpy.data.objects)
для Blender он отлично работает с
$ blender --background --python my_code.py
<bpy_collection[3], BlendDataObjects>
Но когда я хочу документировать свой код с помощью Sphinx и расширения автодок, он не может импортировать bpy, потому что он неизвестен вне Blender.
$ cd doc/
$ make html
[...]
ModuleNotFoundError: No module named 'bpy'
Как я могу создать вывод документации для моего кода Blender с помощью Sphinx?






Решение включает в себя изменение Makefile, сгенерированного sphinx-quickstart, а также написание небольшого сценария-оболочки для sphinx.cmd.build:
Замените переменную SPHINXBUILD в Makefile:
SPHINXBUILD = blender --background --python blender_sphinx.py --
и убедитесь, что фактическая строка рецепта в конце файла содержит флаг -M.
Затем создайте файл blender_sphinx.py в том же каталоге, что и Makefile, со следующим содержимым:
import sys
from sphinx.cmd import build
first_sphinx_arg = sys.argv.index('-M')
build.make_main(sys.argv[first_sphinx_arg:])
Теперь, если ты бежишь
$ make html
из каталога doc/ это позволит автодок найти bpy и импортировать все модули.
Обновленная ссылка здесь для построение блендера как модуля.
Также возможно построить блендер как модуль, чтобы он был доступен в стандартном питоне.