警告! ***HDF5 库版本不匹配错误*** python pandas windows

Posted

技术标签:

【中文标题】警告! ***HDF5 库版本不匹配错误*** python pandas windows【英文标题】:Warning! ***HDF5 library version mismatched error*** python pandas windows 【发布时间】:2018-01-06 18:41:18 【问题描述】:

我正在使用 pandas/python 以 HDFStore 格式保存 DataFrame。当我应用 my_data_frame.to_hdf(arguments...) 命令时,我收到一条错误消息:警告! ***HDF5 库版本不匹配错误 *** 我的程序已停止。

我正在使用 Python 3.5.2 :: Anaconda 4.1.1(64 位)在 Windows 7(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 未命名信息: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 库:是 静态 C 库:是 静态链接的可执行文件:关闭 LDFLAGS:/机器:x64 AM_LDFLAGS: 额外库:C:/bld/hdf5_1496269860661/_b_env/Library/lib/z。 库 存档器: 兰利布: 调试包: API 跟踪:关闭 语言: ---------- Fortran:关闭 Fortran 编译器: Fortran 2003 编译器: Fortran 标志: H5 Fortran 标志: AM Fortran 标志: 共享 Fortran 库:是 静态 Fortran 库:是 C++:开 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++ 库:是 静态 C++ 库:是 特征: --------- 并行 HDF5:关闭 高级库:ON 线程安全:开启 默认 API 映射:v18 使用已弃用的公共符号:ON I/O 过滤器(外部):DEFLATE MPE: 直接变频: dmalloc: 写入前清除文件缓冲区:ON 使用内存检查器:关闭 函数堆栈跟踪:关闭 严格的文件格式检查:关闭 优化仪器:

【问题讨论】:

你能发布print(pd.show_versions())的输出吗? 【参考方案1】:
 Headers are 1.8.15, library is 1.8.18

您的错误信息显示,您需要安装1.8.15 版本。

conda install -c anaconda hdf5=1.8.15

【讨论】:

感谢这工作!有没有办法升级标头而不是降级库? 这对我不起作用。但是下面关于重新安装h5py 的答案有效!【参考方案2】:

如果有人遇到此问题,并且使用 pipconda 进行任何卸载或任何操作都不起作用:我遍历每个 /lib 路径并手动删除 libhdf5* 文件,然后安装 hdf5 macports

【讨论】:

【参考方案3】:

尝试卸载 h5py 模块并重新安装。这为我解决了问题

    pip uninstall h5py pip install h5py

【讨论】:

这行得通,而不是被接受的答案。我很好奇 - 为什么? 在寻找解决方案数小时后,这个快速解决方案对我有用。谢谢!!! 接受的答案对我也不起作用,正确地将库的版本降级/更改为标头的版本并没有解决问题。对我来说,pip uninstall h5py 后跟 conda install h5py 有效。【参考方案4】:

在 macOS 上对我有用的唯一过程是创建一个 virtualenv:

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

【讨论】:

ERROR: No matching distribution found for h5py==1.10.4 你需要不同的版本吗?.. @khaverim 也许那个版本不再可以通过 pip 获得?【参考方案5】:

您可以强制自定义安装特定软件包版本:

conda install --force-reinstall anaconda hdf5==1.8.15

conda install -c conda-forge hdf5=1.8.15

【讨论】:

【参考方案6】:

由于某种原因,使用 conda 卸载然后再次使用 conda 安装 hdf5 不起作用。但是,如果您使用 pip 卸载,然后使用 conda 安装 hdf5,它就可以工作。

那就试试吧:

pip uninstall hdf5
conda install hdf5

【讨论】:

【参考方案7】:

我在这里尝试了所有方法,但只有其他方法完全有效 -

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 并在您重新安装升级 hdf5 的 keras 时。

【讨论】:

【参考方案8】:

我的情况很简单,不需要任何安装:我已经使用cmdconda 环境启动了spyderIPython 控制台:

activate env
spyder

然后,我使用condahdf5 升级为cmd 中的env。但是,在同一 IPython 控制台中运行我的代码后,我收到了类似的错误消息。只需重启spyder 和相应的IPython 控制台。我想这会始终如一地重新加载包。

【讨论】:

以上是关于警告! ***HDF5 库版本不匹配错误*** python pandas windows的主要内容,如果未能解决你的问题,请参考以下文章

CMake:如何避免 HDF5 系统和 conda 安装中的不匹配?

在 Windows 上使用带有 CMake 的 HDF5 库(错误:“找不到 HDF5”)

错误记录Android 编译时技术版本警告 ( 注解处理器与主应用支持的 Java 版本不匹配 )

关于python使用requests依赖包时出现版本不匹配的警告问题,如下处理

Java hdf5 库安装

编译另一个库时出现 HDF5 错误