ESMValGroup / ESMValTool

ESMValTool: A community diagnostic and performance metrics tool for routine evaluation of Earth system models in CMIP
https://www.esmvaltool.org
Apache License 2.0
218 stars 127 forks source link

Error message when running the esmvaltool module on JASMIN #3524

Closed rswamina closed 7 months ago

rswamina commented 8 months ago

I am getting the following error when I try to run the module esmvaltool on JASMIN. I have tried this on sci6 and sci8 machines. > module load esmvaltool

> which esmvaltool

/apps/jasmin/community/esmvaltool/miniconda3_py311_23.11.0-2/envs/esmvaltool/bin/esmvaltool

> esmvaltool --help

ERROR 1: PROJ: proj_create_from_database: Open of /apps/jasmin/community/esmvaltool/miniconda3_py311_23.11.0-2/envs/esmvaltool/share/proj failed
ERROR:esmvalcore._main:Program terminated abnormally, see stack trace below for more information:
Traceback (most recent call last):
  File "/apps/jasmin/community/esmvaltool/miniconda3_py311_23.11.0-2/envs/esmvaltool/lib/python3.11/site-packages/esmvalcore/_main.py", line 518, in run
    fire.Fire(ESMValTool())
              ^^^^^^^^^^^^
  File "/apps/jasmin/community/esmvaltool/miniconda3_py311_23.11.0-2/envs/esmvaltool/lib/python3.11/site-packages/esmvalcore/_main.py", line 319, in __init__
    self.__setattr__(entry_point.name, entry_point.load()())
                                       ^^^^^^^^^^^^^^^^^^
  File "/apps/jasmin/community/esmvaltool/miniconda3_py311_23.11.0-2/envs/esmvaltool/lib/python3.11/importlib/metadata/__init__.py", line 202, in load
    module = import_module(match.group('module'))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/apps/jasmin/community/esmvaltool/miniconda3_py311_23.11.0-2/envs/esmvaltool/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/apps/jasmin/community/esmvaltool/ESMValTool_2.10.0/esmvaltool/cmorizers/data/cmorizer.py", line 17, in <module>
    from esmvalcore._task import write_ncl_settings
  File "/apps/jasmin/community/esmvaltool/miniconda3_py311_23.11.0-2/envs/esmvaltool/lib/python3.11/site-packages/esmvalcore/_task.py", line 24, in <module>
    from ._citation import _write_citation_files
  File "/apps/jasmin/community/esmvaltool/miniconda3_py311_23.11.0-2/envs/esmvaltool/lib/python3.11/site-packages/esmvalcore/_citation.py", line 10, in <module>
    from .config._diagnostics import DIAGNOSTICS
  File "/apps/jasmin/community/esmvaltool/miniconda3_py311_23.11.0-2/envs/esmvaltool/lib/python3.11/site-packages/esmvalcore/config/__init__.py", line 11, in <module>
    from ._config_object import CFG, Config, Session
  File "/apps/jasmin/community/esmvaltool/miniconda3_py311_23.11.0-2/envs/esmvaltool/lib/python3.11/site-packages/esmvalcore/config/_config_object.py", line 242, in <module>
    CFG = Config._load_user_config(USER_CONFIG, raise_exception=False)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/apps/jasmin/community/esmvaltool/miniconda3_py311_23.11.0-2/envs/esmvaltool/lib/python3.11/site-packages/esmvalcore/config/_config_object.py", line 70, in _load_user_config
    new.update(mapping)
  File "<frozen _collections_abc>", line 949, in update
  File "/apps/jasmin/community/esmvaltool/miniconda3_py311_23.11.0-2/envs/esmvaltool/lib/python3.11/site-packages/esmvalcore/config/_validated_config.py", line 65, in __setitem__
    raise InvalidConfigParameter(
esmvalcore.exceptions.InvalidConfigParameter: `offline` is not a valid config parameter.

@valeriupredoi Could it be an issue with the recent update to v2.10.0 ?

valeriupredoi commented 7 months ago

@rswamina the problem is this https://github.com/ESMValGroup/ESMValCore/issues/2280 - basically, you have a user config file that has the deprecated option offline in it, and since that file gets read at first import level, it barfs. Pls remove that from your file in ~/.esmvaltool/config-user.yml, and I too agree this is suboptimal to the very least, but @schlunma (and me, I promised) we are working on a solution :+1:

rswamina commented 7 months ago

A quick question here then - this error should not show up when I set the config file at run time but it does then too. Does it check the default file regardless of whether it is used?

valeriupredoi commented 7 months ago

yes, first thing it does at import level (esmvalcore) is goes and reads the user default config file and barfs if that is poorly configured - your train of thoughts is absolutely sensible and logical, the current code isn't :rofl: ; like I says, this is far from ideal, but it'll be like this on JASMIN for now :grin:

rswamina commented 7 months ago

Thanks. I will close this issue since it is resolved now.

valeriupredoi commented 7 months ago

cheers @rswamina :beer: