警告! ***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】:
如果有人遇到此问题,并且使用 pip
或 conda
进行任何卸载或任何操作都不起作用:我遍历每个 /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】:我的情况很简单,不需要任何安装:我已经使用cmd
从conda
环境启动了spyder
和IPython
控制台:
activate env
spyder
然后,我使用conda
将hdf5
升级为cmd
中的env
。但是,在同一 IPython
控制台中运行我的代码后,我收到了类似的错误消息。只需重启spyder
和相应的IPython
控制台。我想这会始终如一地重新加载包。
【讨论】:
以上是关于警告! ***HDF5 库版本不匹配错误*** python pandas windows的主要内容,如果未能解决你的问题,请参考以下文章
CMake:如何避免 HDF5 系统和 conda 安装中的不匹配?
在 Windows 上使用带有 CMake 的 HDF5 库(错误:“找不到 HDF5”)
错误记录Android 编译时技术版本警告 ( 注解处理器与主应用支持的 Java 版本不匹配 )