Установка переменной среды в python не влияет на cfgrib
Я использую xarray с cfgrib для загрузки файлов grib в Python. У меня есть собственные определения grib, которые я передаю в eccodes (бэкенд для cfgrib) через переменную среды.GRIB_DEFINITION_PATH
. Эта настройка работает хорошо, пока я запускаю скрипт Python в среде, где переменная уже установлена.
Теперь я хочу быть более гибким в своей настройке и предоставить переменную среды из Python, используяos.environ
(см. пример ниже). Но каким-то образом при настройке такой среды переменная игнорируется, и я не понимаю, почему. Может ли кто-нибудь дать мне некоторое представление об этой тайне? Заранее спасибо!
Здесь «MRE» настройки.
import xarray as xr
import os
grib_definitions_path = "/paths/to/definitions:/split/like/this"
os.environ["GRIB_DEFINITION_PATH"] = grib_definitions_path
grib_file = '/path/to/grib/file'
backend_args = {
"filter_by_keys": {"shortName": "P"}
}
array = xr.open_dataset(grib_file, engine="cfgrib", encode_cf=("geography", "vertical"), backend_kwargs=backend_args)["P"]
print(array.dims)
Выполнение приведенного выше кода в терминале не работает для меня сKeyError: 'P'
. Однако если я сначала запущу
export GRIB_DEFINITION_PATH="/paths/to/definitions:/split/like/this"
размерыarray
печатаются, как и ожидалось.