pip安装pyhdf构建失败提示hdf.h文件不存在报错求助
pyhdf安装构建失败问题解决方案
报错原因分析
你看到的虚线以上内容是pip从源码编译pyhdf的C扩展模块的完整流程输出,核心报错为:pyhdf/hdfext_wrap.c:3681:17: fatal error: hdf.h: No such file or directory
缺失hdf.h头文件的根本原因是pyhdf依赖HDF4开发库,你当前系统中仅配置了HDF5的库路径,HDF4和HDF5是互不兼容的两个版本,头文件无法通用。你之前尝试的升级pip、安装编译环境等操作均未解决核心依赖缺失的问题。
可行解决步骤
- 方法1:conda安装(最简便,无需手动处理依赖)
直接执行命令:conda install -c conda-forge pyhdf
conda会自动匹配适配的HDF4依赖,无需手动编译。 - 方法2:先安装系统HDF4开发库再pip安装
- Debian/Ubuntu系统先执行:
sudo apt install libhdf4-dev - CentOS/RHEL系统先执行:
sudo yum install hdf-devel
系统依赖安装完成后,重新执行pip install pyhdf即可。
- Debian/Ubuntu系统先执行:
- 方法3:无root权限的服务器环境适配方案
- 手动下载HDF4源码,编译安装到个人用户目录,例如安装到
/project/InSAR/user1/tools/hdf4路径 - 执行以下命令配置环境变量,指定HDF4的头文件和库路径:
export C_INCLUDE_PATH=/project/InSAR/user1/tools/hdf4/include:$C_INCLUDE_PATH export LIBRARY_PATH=/project/InSAR/user1/tools/hdf4/lib:$LIBRARY_PATH export LD_LIBRARY_PATH=/project/InSAR/user1/tools/hdf4/lib:$LD_LIBRARY_PATH - 再次执行
pip install pyhdf即可正常编译。
- 手动下载HDF4源码,编译安装到个人用户目录,例如安装到
内容的提问来源于stack exchange,提问作者Linux Penguin
相关产品推荐
相关产品推荐

