导入pygrib anaconda引发依赖问题

时间:2017-11-10 13:43:33

标签: python-3.x import anaconda environment pygrib

我有以下问题:我已经安装了anaconda 3并在我的anaconda环境中安装了名为“pygrib”的软件包。现在,当我在环境中的文件中导入pygrib时,它会显示以下错误:

import pygrib ImportError: libhdf5.so.10: cannot open shared object file: No such file or directory

由于我是noobie,我真的不知道如何处理这些信息。我安装了h5py软件包和其他一些相关软件包,但它没有解决问题。怎么办?

1 个答案:

答案 0 :(得分:1)

这是与HDF5库的链接错误。您是从源代码构建pygrib还是使用conda-forge频道通过conda进行安装?当我使用conda-forgepygrib时,我会遇到同样的问题。来自ECMWF的GRIB API(在conda-forge上列为ecmwf_grib)是pygrib所依赖的,HDF5依赖来自GRIB API库中使用的netCDF4。具体来说,使用最新的HDF5(此时为1.10.0)是导致问题的原因。使用HDF5 1.8。*可以正确导入pygrib

要强制conda获取特定版本,请执行以下操作:

conda install pygrib hdf5=1.8

这将使conda再次使用较旧的HDF5库解决程序包规范,并可能解决问题。这假设您处于conda安装pygrib的环境中。如果您愿意,也可以使用conda create -n <env name> pygrib hdf5=1.8创建新环境。

通常,当您看到未找到库的这些错误时,通常需要安装正确版本的库。对于conda,在更新软件包时会发生这种情况,并且安装了较新版本的库,而您正在使用的软件包尚未正确链接。只要您可以追踪导致问题的软件包/库,就可以使用上述过程开始要求安装某些版本的东西,然后conda应该更新或降级事物,以便再次协同工作。希望这是有道理和有帮助的。

这部分可能会或可能不会引起您的兴趣,但我无法肯定的是这个问题的起源。我的猜测是ecmwf_grib和它是如何构建的。这就是ldd显示我的安装显示旧的HDF5依赖性的地方。如果我能找出确切的问题,我会更新这个答案。