警告!***HDF5库版本不匹配错误*** Python Pandas Windows

13
我正在使用pandas/python将DataFrame以HDFStore格式保存。当我使用my_data_frame.to_hdf(arguments...)命令时,我遇到一个错误消息:警告!*** HDF5库版本不匹配错误 ***,并且我的程序停止运行。
我正在使用Windows 7(64位),使用Python 3.5.2 :: Anaconda 4.1.1(64位)。
我一直在阅读这个错误消息,并且它说这是我计算机上安装的HDF5版本与Anacondas使用的版本之间的问题。根据this帖子,一个简单的"conda install -c anaconda hdf5=1.8.18"可能会解决我的问题,但我仍然遇到相同的错误消息。
谢谢你们的帮助。
在这里,我放置了完整的错误日志:
警告! ***HDF5库版本不匹配错误*** 用于编译此应用程序的HDF5头文件与该应用程序链接的HDF5库使用的版本不匹配。 如果应用程序继续运行,则可能会导致数据损坏或分段错误。 当应用程序由一个版本的HDF5编译但是与不同版本的静态或共享HDF5库链接时,就会发生这种情况。 您应该重新编译应用程序或检查相关的共享库设置,例如'LD_LIBRARY_PATH'。 您可以自行承担风险,通过将环境变量'HDF5_DISABLE_VERSION_CHECK'设置为"1"来禁用此警告。 将其设置为2或更高数字将完全抑制警告消息。 头文件为1.8.15,库为1.8.18 HDF5配置总结 =================================
基本信息: ------------------- HDF5版本: 1.8.18 配置时间: 2017-05-31 配置人员: NMake Makefiles 配置模式: CMAKE 3.8.0 主机系统: Windows-6.3.9600 Uname信息: Windows 字节序: little-endian 库文件: 安装路径: C:/bld/hdf5_1496269860661/_b_env/Library
编译选项: ------------------ 编译模式: RELEASE C编译器: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe CFLAGS: /DWIN32 /D_WINDOWS /W3 H5_CFLAGS: AM_CFLAGS: CPPFLAGS: H5_CPPFLAGS: AM_CPPFLAGS: 共享C库: YES 静态C库: YES 静态连接可执行文件: OFF LDFLAGS: /machine:x64 AM_LDFLAGS: 额外库: C:/bld/hdf5_1496269860661/_b_env/Library/lib/z.lib Archiver: Ranlib: 调试包: API跟踪: OFF
语言: ---------- Fortran: OFF Fortran编译器: Fortran 2003编译器: Fortran标志: H5 Fortran标志: AM Fortran标志: 共享Fortran库: YES 静态Fortran库: YES
C++: ON C++编译器: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe C++标志: /DWIN32 /D_WINDOWS /W3 /GR /EHsc H5 C++标志: AM C++标志: 共享C++库: YES 静态C++库: YES
功能: --------- 并行HDF5: OFF 高层库: ON 线程安全性: ON 默认API映射: v18 使用已弃用的公共符号: ON I/O过滤器(外部): DEFLATE MPE: 直接VFD: dmalloc: 在写入数据之前清除文件缓冲区: ON 使用内存检查器: OFF 函数堆栈跟踪: OFF 严格文件格式检查: OFF 优化仪器:

你能发一下 print(pd.show_versions()) 的输出吗? - MaxU - stand with Ukraine
9个回答

27

尝试卸载 h5py 模块并重新安装它。这对我有用。

  1. pip uninstall h5py
  2. pip install h5py

3
这个方案有效,而非被接受的答案。我很好奇 - 为什么? - Sovm
2
在寻找解决方案的几个小时后,这个快速的方法对我很有效。谢谢!!! - VideoPac
1
被接受的答案对我也没有用,正确地降级/更改库的版本到头文件的版本也没有解决问题。对我来说,执行 pip uninstall h5py 然后执行 conda install h5py 解决了问题。 - a.t.

19
 Headers are 1.8.15, library is 1.8.18

根据您的错误信息显示,您需要安装版本为1.8.15的软件。

conda install -c anaconda hdf5=1.8.15

8
谢谢,这个方法有效! 有没有一种方法可以升级头文件而不是降级库? - Oscar Mike
这对我没有起作用。但是下面关于重新安装h5py的答案有效! - Cassova

2

由于某些原因,使用conda卸载hdf5后再次使用conda安装时无法正常工作。但是,如果您使用pip卸载,然后使用conda安装hdf5,则可以正常工作。

因此,请尝试:

pip uninstall hdf5
conda install hdf5

1
你可以强制安装特定版本的自定义软件包:
conda install --force-reinstall anaconda hdf5==1.8.15

或者

conda install -c conda-forge hdf5=1.8.15

1

我尝试了这里的每种方法,但只有完全不同的东西起作用了 -

conda install -c conda-forge hdf5=1.10.5 # newer system version
conda install -c conda-forge hdf5=1.8.18 # for this particular problem

这将强制安装您的hdf5,无论是升级还是降级。这将卸载keras,并在重新安装keras时升级hdf5。


1
在macOS上,我唯一成功的方法是创建一个虚拟环境:
virtualenv -p python3 myenv
. myenv/bin/activate
pip3 install h5py==1.10.4 # or whichever version you want

绝对没有其他方法有效!

您可能需要进行brew install hdf5安装

无法帮助的github问题:

https://github.com/h5py/h5py/issues/1068


错误:找不到与h5py==1.10.4相匹配的发行版。您需要不同版本吗? - khaverim
@khaverim也许那个版本已经无法通过pip获取了? - jtlz2

0
如果有人遇到这个问题,无论使用pipconda或其他任何方法卸载都无法解决:我遍历了每个/lib路径并手动删除了libhdf5*文件,然后使用macports安装了hdf5

0

对于不使用conda的人来说,由于我的Debian上的hdf5库不如pip3所需的新,因此我建议您以root身份使用apt安装python3-h5py包,而不是通过pip3本地安装。


0

我的情况很简单,不需要任何安装:我从一个conda环境中使用cmd启动了spyder和一个IPython控制台:

activate env
spyder

我使用conda升级了cmd中env的hdf5。然而,在同一IPython控制台中运行代码后,我收到了类似的错误消息。只需要重新启动spyder和相应的IPython控制台即可。我想这样可以一致地重新加载包。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接