![在 Linux 上将 blender 构建为 python 模块后,仍然找不到 bpy 模块](https://linux22.com/image/1603510/%E5%9C%A8%20Linux%20%E4%B8%8A%E5%B0%86%20blender%20%E6%9E%84%E5%BB%BA%E4%B8%BA%20python%20%E6%A8%A1%E5%9D%97%E5%90%8E%EF%BC%8C%E4%BB%8D%E7%84%B6%E6%89%BE%E4%B8%8D%E5%88%B0%20bpy%20%E6%A8%A1%E5%9D%97.png)
我一直尝试在我的 Linux(Debian GNU/Linux 9.9)虚拟机上将 blender 构建为 python 模块,但遇到了很多麻烦。
我已遵循以下说明:
https://wiki.blender.org/wiki/Building_Blender/Linux/Ubuntu
https://blender.stackexchange.com/questions/126959/how-to-build-blender-as-python-module
并尝试使用不同版本的Blender(2.81和2.79)以及在安装依赖项的第2步中使用不同的变化,例如install_deps.sh --skip-python --skip-numpy。
在步骤 3(使用 CMake 编译 blender)中,我在 cd ~/blender-git/blender 中运行以下命令,而不仅仅是 make。这些参数(除了-D WITH_PYTHON_INSTALL=OFF
-D WITH_PYTHON_MODULE=ON
我添加的参数)是运行 install_deps.sh 后输出告诉 be 执行的操作。
sudo make bpy -j2 BUILD_CMAKE_ARGS="-U *SNDFILE* -U *PYTHON* -U *BOOST* -U *Boost* -U *OPENCOLORIO* -U *OPENEXR* -U *OPENIMAGEIO* -U *LLVM* -U *CYCLES* -U *OPENSUBDIV* -U *OPENVDB* -U *COLLADA* -U *FFMPEG* -U *ALEMBIC* -D WITH_CODEC_SNDFILE=ON -D PYTHON_VERSION=3.5 -D WITH_OPENCOLORIO=ON -D OPENCOLORIO_ROOT_DIR=/opt/lib/ocio -D WITH_OPENIMAGEIO=ON -D OPENIMAGEIO_ROOT_DIR=/opt/lib/oiio -D WITH_CYCLES_OSL=ON -D WITH_LLVM=ON -D LLVM_VERSION=3.4 -D WITH_PYTHON_INSTALL=OFF -D WITH_PYTHON_MODULE=ON -D OSL_ROOT_DIR=/opt/lib/osl -D LLVM_ROOT_DIR=/opt/lib/llvm -D LLVM_STATIC=ON -D WITH_OPENSUBDIV=ON -D OPENSUBDIV_ROOT_DIR=/opt/lib/osd -D WITH_OPENVDB=ON -D WITH_OPENVDB_BLOSC=ON -D WITH_ALEMBIC=ON -D ALEMBIC_ROOT_DIR=/opt/lib/alembic -D WITH_CODEC_FFMPEG=ON -D FFMPEG_LIBRARIES='avformat;avcodec;avutil;avdevice;swscale;swresample;lzma;rt;theora;theoradec;theoraenc;vorbis;vorbisenc;vorbisfile;ogg;x264'"
完成此步骤后,我收到一条消息,表明 blender 已成功构建,但是在尝试导入 bpy 后,在 Linux 命令中输入 python3 或 python 后出现以下错误:
>>> import bpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/username/blender-git/build_linux_bpy/bin/2.79/scripts/modules/bpy/__init__.py", line 38, in <module>
from _bpy import types, props, app, data, context
ModuleNotFoundError: No module named '_bpy'
这是将其添加到我的 Pythonpath 之后的情况:
导出 PYTHONPATH=$PYTHONPATH:/home/用户名/blender-git/build_linux_bpy/bin/2.79/scripts/modules:/home/用户名/blender-git/build_linux_bpy/bin/2.79/scripts/modules/bpy
根据这篇文章,我认为上述错误意味着它正试图将其作为内部搅拌机 C 模块运行。 https://stackoverflow.com/questions/37187025/blender-python-bpy-init-py-apparently-importing-from-a-non-existent-mod
我的问题是,我在这里缺少什么才能使它工作?运行 sudo make bpy 时我是否缺少参数?我需要在 Pythonpath 中执行其他操作吗?我需要有特定版本的 python 才能使其工作吗?(我有来自 anaconda 包的 2.7 和 3.7)。
大约两年前,我成功地在 Windows 机器上将 Blender 2.78 构建为 Python 模块,并直接从 Eclipse 中的 Python 解释器使用它。我记得这个过程也很乏味,但这次我觉得我已经用尽了互联网上的所有答案。
如果有人成功地在 Linux 上将 Blender 构建为 Python 模块,并且遇到了与我类似的问题,并且可以指出我做错的地方,我将不胜感激。