3

我在 macOS 上使用 cfgrib,当我尝试将隐蔽的 grib 文件用于 xarray 时出现以下错误:

AttributeError: module 'pyeccodes.compat' has no attribute 'codes_grib_multi_support_off'

这是我到目前为止的代码:

import xarray as xr

import matplotlib.pyplot as plt
import matplotlib.style as sty
sty.use('classic')

import numpy as np

import cartopy.crs as ccrs
d7 = xr.open_dataset('2007_BLH.grib', engine='cfgrib')

我已经下载了所有似乎需要的东西,包括 eccodes、pyeccodes、cfgrib。我该如何解决这个问题?

4

2 回答 2

1

使用包管理器安装 ecCodes 二进制文件,请参阅:https ://github.com/ecmwf/cfgrib#binary-dependencies 。

于 2020-09-05T19:05:16.687 回答
0

我在使用 Anaconda3 的 Windows 10 机器上遇到了同样的错误,但希望我的解决方案会有所帮助。

我认为问题在于我在 cfgrib 之前安装了metpy。似乎metpy设置了一些与cfgrib冲突的包,因为经过多次试验和错误,我创建了一个新的虚拟python环境并解决了以下问题:

conda install -n new_env cfgrib //将包安装到我的新虚拟环境中

在环境变量中设置 eccodes 定义路径...

变量名:ECCODES_DEFINITION_PATH 变量值:C:\Users\path\to\eccodes\definitions

我想这看起来像你的 MacOS 的 ECCODES_DEFINITION_PATH=./path/to/eccodes/definitions 。

于 2020-07-29T21:20:20.313 回答