安装sentence-transformers后导入报错:h5py导入时defs模块DLL加载失败
问题排查与解决方法
该报错核心是已安装的h5py包和其依赖的底层HDF5动态链接库版本不匹配,无法调用对应接口导致,按以下顺序排查即可:
- 更换
h5py安装源:Windows环境下通过pip安装的h5py经常出现依赖库缺失或不匹配问题,直接换成conda安装即可自动适配兼容的HDF5库,执行命令:conda install h5py - 确认架构一致性:检查你的Python环境是32位还是64位,安装的
h5py、HDF5库、VC++运行库的架构必须和Python环境完全一致,不可混用 - 修复VC运行库:Windows环境下
h5py的DLL加载依赖Visual C Redistributable运行库,安装对应架构的VC++ 2015-2022运行库即可解决底层依赖缺失问题 - 适配numpy版本:
h5py对numpy版本有明确要求,版本不兼容也会触发该报错,可尝试安装稳定兼容的numpy版本,执行命令:pip install numpy==1.23.5 - 干净重装
h5py:如果上述操作无效,先完全卸载清理现有版本再重装:- 执行
conda remove h5py或pip uninstall h5py删除现有版本 - 进入环境路径
~\Anaconda3\envs\custom_env\lib\site-packages\,删除所有h5py开头的残留文件和文件夹 - 重新执行
conda install h5py安装匹配版本
- 执行
- 验证sentence-transformers安装:修复
h5py问题后如果还有导入问题,可安装稳定版sentence-transformers:pip install sentence-transformers==2.2.2
内容的提问来源于stack exchange,提问作者OK 400
相关产品推荐
相关产品推荐

