Hi, the current gdal-ubuntu-small docker (3.9.1) appears to have python bindings that are not compatible with numpy 2.0.0. If I pip install --upgrade numpy==2.0.0 and then try `from osgeo import gdal, gdal_array` I get an error:

In [4]: from osgeo import gdal, gdal_array

A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.0.0 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

Traceback (most recent call last):  File "/root/.local/bin/ipython", line 8, in <module>
    sys.exit(start_ipython())
  File "/root/.local/lib/python3.12/site-packages/IPython/__init__.py", line 130, in start_ipython
    return launch_new_instance(argv=argv, **kwargs)
  File "/root/.local/lib/python3.12/site-packages/traitlets/config/application.py", line 1075, in launch_instance
    app.start()
  File "/root/.local/lib/python3.12/site-packages/IPython/terminal/ipapp.py", line 317, in start
    self.shell.mainloop()
  File "/root/.local/lib/python3.12/site-packages/IPython/terminal/interactiveshell.py", line 917, in mainloop
    self.interact()
  File "/root/.local/lib/python3.12/site-packages/IPython/terminal/interactiveshell.py", line 910, in interact
    self.run_cell(code, store_history=True)
  File "/root/.local/lib/python3.12/site-packages/IPython/core/interactiveshell.py", line 3075, in run_cell
    result = self._run_cell(
  File "/root/.local/lib/python3.12/site-packages/IPython/core/interactiveshell.py", line 3130, in _run_cell
    result = runner(coro)
  File "/root/.local/lib/python3.12/site-packages/IPython/core/async_helpers.py", line 128, in _pseudo_sync_runner
    coro.send(None)
  File "/root/.local/lib/python3.12/site-packages/IPython/core/interactiveshell.py", line 3334, in run_cell_async
    has_raised = await self.run_ast_nodes(code_ast.body, cell_name,
  File "/root/.local/lib/python3.12/site-packages/IPython/core/interactiveshell.py", line 3517, in run_ast_nodes
    if await self.run_code(code, result, async_=asy):
  File "/root/.local/lib/python3.12/site-packages/IPython/core/interactiveshell.py", line 3577, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-4-dd0a9b2f852a>", line 1, in <module>
    from osgeo import gdal, gdal_array
  File "/usr/lib/python3/dist-packages/osgeo/gdal_array.py", line 10, in <module>
    from . import _gdal_array

I hoped that the python bindings in the docker image would be compatible with both numpy 1 and 2, but apparently they're not? Would it be possible to create docker images with bindings that are compatible with numpy2? Or would you rather wait until the official ubuntu numpy package moves to 2.0?

Thanks,
--

        

Vincent Schut

Remote Sensing Software Engineer

+31 302272679 ~ Maliebaan 22 | 3581CP | Utrecht | Netherlands

Linkedin <https://www.linkedin.com/company/satelligence/>~ satelligence.com <http://www.satelligence.com><http://www.satelligence.com>
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to