Skip to content

Installation with GRIB broken for Python > 3.10 #113

@johannesbulin

Description

@johannesbulin

What happened?

At the moment, installing with GRIB support (e.g. pip install .[grib]) fails for Python > 3.10 like this:

     src/pygrib/_pygrib.pyx:377:46: undeclared name not builtin: long
      Compiling src/pygrib/_pygrib.pyx because it changed.
      [1/1] Cythonizing src/pygrib/_pygrib.pyx
      Traceback (most recent call last):
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
          return _build_backend().build_wheel(wheel_directory, config_settings,
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 441, in build_wheel
          return _build(['bdist_wheel', '--dist-info-dir', str(metadata_directory)])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 429, in _build
          return self._build_with_temp_dir(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 410, in _build_with_temp_dir
          self.run_setup()
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 520, in run_setup
          super().run_setup(setup_script=setup_script)
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 317, in run_setup
          exec(code, locals())
        File "<string>", line 113, in <module>
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/__init__.py", line 117, in setup
          return distutils.core.setup(**attrs)  # type: ignore[return-value]
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 186, in setup
          return run_commands(dist)
                 ^^^^^^^^^^^^^^^^^^
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
          dist.run_commands()
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 1000, in run_commands
          self.run_command(cmd)
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 1107, in run_command
          super().run_command(command)
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
          cmd_obj.run()
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/command/bdist_wheel.py", line 370, in run
          self.run_command("build")
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 341, in run_command
          self.distribution.run_command(command)
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 1107, in run_command
          super().run_command(command)
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
          cmd_obj.run()
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/_distutils/command/build.py", line 135, in run
          self.run_command(cmd_name)
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 341, in run_command
          self.distribution.run_command(command)
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 1107, in run_command
          super().run_command(command)
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
          cmd_obj.run()
        File "<string>", line 19, in run
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 367, in run
          self.build_extensions()
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 483, in build_extensions
          self._build_extensions_serial()
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 509, in _build_extensions_serial
          self.build_extension(ext)
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/Cython/Distutils/build_ext.py", line 131, in build_extension
          new_ext = cythonize(
                    ^^^^^^^^^^
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/Cython/Build/Dependencies.py", line 1153, in cythonize
          cythonize_one(*args)
        File "/etc/ecmwf/ssd/ssd1/tmpdirs/dijb.879073.20260521_122035.157/pip-build-env-6galfyj4/overlay/lib/python3.11/site-packages/Cython/Build/Dependencies.py", line 1297, in cythonize_one
          raise CompileError(None, pyx_file)
      Cython.Compiler.Errors.CompileError: src/pygrib/_pygrib.pyx
      [end of output]

This is probably caused by using a fixed pygrib version used to circumvent issues like #41.

What are the steps to reproduce the bug?

pip install "ifsbench @ git+https://github.com/ecmwf-ifs/ifsbench.git" with Python > 3.10

Version

0.2.2

Platform (OS and architecture)

Relevant log output

Accompanying data

No response

Organisation

No response

Metadata

Metadata

Assignees

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