使用Blender捆绑Python安装lmdb时出现Python.h缺失错误求助
解决Blender 2.79a捆绑Python 3.5安装lmdb时Python.h缺失问题
问题场景
宿主机为Ubuntu 22.04,Docker容器内运行Ubuntu 18.04,适配PVNET-Rendering项目需使用Blender 2.79a及其捆绑的Python 3.5。通过get-pip.py为该Python安装pip后,执行/home/blender-2.79a-linux-glibc219-x86_64/2.79/python/bin/pip3 install lmdb时出现编译错误:
lmdb/cpython.c:26:10: fatal error: Python.h: No such file or directory
编译终止导致安装失败
错误复现步骤:
- 执行
wget https://bootstrap.pypa.io/pip/3.5/get-pip.py下载安装脚本 - 进入Blender捆绑Python的bin目录:
cd blender-2.79a-linux-glibc219-x86_64/2.79/python/bin/ - 运行
./python3.5m /home/get-pip.py完成pip安装 - 执行
/home/blender-2.79a-linux-glibc219-x86_64/2.79/python/bin/pip3 install lmdb触发错误
解决方案
方案一:安装系统Python 3.5开发包
Blender自带的Python为精简版,缺少编译C扩展所需的头文件,Ubuntu 18.04官方源提供对应版本的开发依赖:
- 更新包列表并安装依赖:
sudo apt update && sudo apt install -y python3.5-dev - 重新执行lmdb安装命令:
/home/blender-2.79a-linux-glibc219-x86_64/2.79/python/bin/pip3 install lmdb
方案二:手动指定Blender Python头文件路径
若不想安装系统Python,可直接指定Blender自带Python的头文件目录:
- 确认Blender Python的include路径(通常位于以下位置):
/home/blender-2.79a-linux-glibc219-x86_64/2.79/python/include/python3.5m/ - 设置环境变量后执行安装:
C_INCLUDE_PATH=/home/blender-2.79a-linux-glibc219-x86_64/2.79/python/include/python3.5m/ /home/blender-2.79a-linux-glibc219-x86_64/2.79/python/bin/pip3 install lmdb
说明
编译需要C扩展的Python包(如lmdb)时,必须依赖Python头文件。Blender捆绑的Python仅包含运行时组件,缺少开发所需的头文件,因此需通过上述两种方式提供头文件路径。
内容的提问来源于stack exchange,提问作者Mona Jalal
相关产品推荐
相关产品推荐

