Как устранить эту ошибку AttributeError при использовании eccodes/grib?
Я работаю с cfgrib на macOS и получаю следующую ошибку, когда пытаюсь использовать скрытый файл 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')
Я скачал все, что мне кажется необходимым, включая эккоды, пиккоды, cfgrib. Как я могу решить эту проблему?
2 ответа
Установите двоичный файл ecCodes с помощью диспетчера пакетов, см. https://github.com/ecmwf/cfgrib.
У меня была такая же ошибка на машине с Windows 10 с Anaconda3, но, надеюсь, мое решение будет полезно.
Думаю, проблема заключалась в том, что я устанавливал metpy до cfgrib. Похоже, что metpy настроил некоторые пакеты, которые конфликтовали с cfgrib, потому что после долгих проб и ошибок я создал новую виртуальную среду Python и решил проблему, выполнив следующие действия:
conda install -n new_env cfgrib // установить пакет в мою новую виртуальную среду
Задайте путь к определениям эккодов в переменной среды...
Имя переменной: ECCODES_DEFINITION_PATH Значение переменной: C:\Users\path\to\eccodes\definitions
Я предполагаю, что это будет выглядеть примерно так: ECCODES_DEFINITION_PATH=./ Path/to/eccodes/definitions для вашего MacOS.