Установка переменной среды в 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печатаются, как и ожидалось.

0 ответов

Другие вопросы по тегам