Skip to content

Missing binary on Linux install via pypi in newer versions (2.39.0 - 2.40.0) #121

@bnubald

Description

@bnubald

What happened?

Installing newer versions of eccodes not finding/including binary.

When attempting to use eccodes (latest -> v2.40.0), I was getting an error, and using self check, showed me the included error. In trying to find out if it was a system issue, I tried installing versions since the binary was included, and found the earlier versions working, here is a list:

  • 2.37.0 (working)
  • 2.38.0 (working)
  • 2.38.1 (working)
  • 2.38.3 (working)
  • 2.39.0 (not working)
  • 2.39.1 (not working)
  • 2.39.2 (not working)
  • 2.40.0 (not working)

This is the output when working, and I'm able to use these versions to read data without issue:

export ECCODES_PYTHON_TRACE_LIB_SEARCH=1
❯ pip install eccodes==2.37
❯ python -m eccodes selfcheck
eccodes lib search: trying to find binary wheel
eccodes lib search: looking in /data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/site-packages/eccodes.libs
eccodes lib search: returning wheel library from /data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/site-packages/eccodes.libs/libeccodes-aadb7c6a.so
eccodes lib search: versions: {'eccodes': '2.37.0'}
Found: ecCodes v2.37.0.
Library: /data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/site-packages/eccodes.libs/libeccodes-aadb7c6a.so
Definitions: /MEMFS/definitions
Samples: /MEMFS/samples
Your system is ready.

What are the steps to reproduce the bug?

❯ pip install eccodes
❯ export ECCODES_PYTHON_TRACE_LIB_SEARCH=1
❯ python -m eccodes selfcheck

Version

v2.39.0, v2.39.1, v2.39.2, v2.40.0

Platform (OS and architecture)

CentOS Linux 7 (Core), and on Rocky Linux 9.5 (Blue Onyx)

Relevant log output

eccodes lib search: trying to find binary wheel
eccodes lib search: looking in /data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/site-packages/eccodes.libs
eccodes lib search: looking in /data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/site-packages/eccodes/.dylibs
eccodes lib search: looking in /data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/site-packages/eccodes
eccodes lib search: did not find library from wheel; try to find as separate lib
Traceback (most recent call last):
  File "/data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/runpy.py", line 188, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/runpy.py", line 147, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/runpy.py", line 111, in _get_module_details
    __import__(pkg_name)
  File "/data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/site-packages/eccodes/__init__.py", line 13, in <module>
    from .eccodes import *  # noqa
  File "/data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/site-packages/eccodes/eccodes.py", line 12, in <module>
    from gribapi import (
  File "/data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/site-packages/gribapi/__init__.py", line 13, in <module>
    from .gribapi import *  # noqa
  File "/data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/site-packages/gribapi/gribapi.py", line 34, in <module>
    from gribapi.errors import GribInternalError
  File "/data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/site-packages/gribapi/errors.py", line 16, in <module>
    from .bindings import ENC, ffi, lib
  File "/data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/site-packages/gribapi/bindings.py", line 102, in <module>
    library_path = find_binary_libs("eccodes")
  File "/data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/site-packages/gribapi/bindings.py", line 95, in find_binary_libs
    import findlibs
  File "/data/hpcdata/users/username/miniconda3/envs/ffmpeg_del/lib/python3.9/site-packages/findlibs/__init__.py", line 78, in <module>
    lib_name: str, pkg_name: str, preload_deps: bool | None = None
TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'

Relevant diff?: 2.38.3...2.39.0

Accompanying data

https://github.com/pydata/xarray-data/blob/d90be9863e8f8bbba980c1070b70628a18ab8d48/era5-2mt-2019-03-uk.grib

Organisation

British Antarctic Survey

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions