这是与 HDF5 库的链接错误。您是pygrib
从源代码构建还是使用conda-forge
通道安装它conda
?当我使用conda-forge
构建时,pygrib
我遇到了同样的问题。来自 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 依赖项的地方。如果我能找出确切的问题,我会更新这个答案。