-
Notifications
You must be signed in to change notification settings - Fork 3
Blender As Python Module
Для генерации тестовых данных юзается питонячий скрипт, который использует блендер в качестве модуля, однако, чтобы сделать такой финт ушами, нужно сначала собрать его в таком виде. Эта небольшая инструкция расскажет, как это сделать. Инструкция актуальна для MacOS X 10.9.1, на других платформах могут быть нюансы.
Для начала надо создать отдельную директорию (на линуксе не обязательно). Дело в том, что на винде и маке требуется отдельно рядом с репозиторием положить директорию lib, в которую скачать дополнительные библиотеки.
mkdir blender-build && cd blender-build
теперь склонируем блендер:
git clone http://git.blender.org/blender.git
На Mac OS и windows также счекаутим библиотеки.
mkdir lib && (cd lib && svn co ${url})
Где ${url} в зависимости от способа сборки:
- https://svn.blender.org/svnroot/bf-blender/trunk/lib/darwin-9.x.universal для Mac OS X;
- https://svn.blender.org/svnroot/bf-blender/trunk/lib/windows для Windows с MSVC;
- https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64 для Windows с MSVC и amd64 сборки;
- https://svn.blender.org/svnroot/bf-blender/trunk/lib/mingw32 для Windows с mingw;
- https://svn.blender.org/svnroot/bf-blender/trunk/lib/mingw64 для Windows с mingw и amd64 сборки.
Теперь нужно создать директорию для сборки:
mkdir build && cd build
Можно начинать конфигурировать сборку. Нас интересует опция -DWITH_PYTHON_MODULE=ON, также, есть специальный готовый конфиг для сборки в виде модуля.
cmake -DWITH_PYTHON_MODULE=ON -DWITH_PYTHON_INSTALL=OFF -G Ninja ../blender
или
cmake -C../blender/build_files/cmake/config/bpy_module.cmake -G Ninja ../blender
-G Ninja нужен для сборки с помощью ниндзи, можно указать свой генератор, если нужно, или просто оставить дефолт. На маке также потребуется указать -DWITH_LIBMV=OFF, потому что эта штука крешится при старте, --а также наложить вот такой патчик (я уже сделал пулл-реквест в блендер), иначе сборка будет падать на этапе линковки:-- Патч приняли, код в ветке master больше не требуется патчить, найти его можно на страничке с перечислением наших патчей в сторонние проекты. Отдельно стоит добавить, что можно указать -DCMAKE_INSTALL_PATH=/some/path/install/to, чтобы итоговые файлы оказались в месте, отличном от директории сборки.
make && make install
или
ninja && ninja install
ну или что там у вас :)
Теперь мы получили все необходимое и можем использовать:
export PYTHONPATH=/path/to/the/blender/build/directory/bin
python3
В открывшейся питонячей консоли пробуем загрузить модуль:
import bpy
Он должен загрузиться без ошибок, если все сделано правильно.