EnMAP-Box / enmap-box

EnMAP-Box source code repository. See https://enmap-box.readthedocs.io for documentation
GNU General Public License v3.0
35 stars 16 forks source link

macOS: ImportError: cannot import name 'DMD_CREATIONFIELDDATASUBTYPES' from 'osgeo.gdalconst' #843

Closed jakimowb closed 3 months ago

jakimowb commented 4 months ago

QGIS for macOS uses an outdated GDAL (3.3.2, e.g. OSGeo4W is on 3.8.4) This leads to the following error:

ImportError: cannot import name 'DMD_CREATIONFIELDDATASUBTYPES' from 'osgeo.gdalconst'

Workaround: install with conda: https://enmap-box.readthedocs.io/en/latest/usr_section/usr_installation.html#id7

Traceback (most recent call last):
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 423, in _startPlugin
    plugins[packageName] = package.classFactory(iface)
  File "/Users/jakimowb/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/enmapboxplugin/__init__.py", line 51, in classFactory
    plugin = EnMAPBoxPlugin(iface)
  File "/Users/jakimowb/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/enmapboxplugin/enmapbox/enmapboxplugin.py", line 54, in __init__
    enmapbox.initAll()
  File "/Users/jakimowb/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/enmapboxplugin/enmapbox/__init__.py", line 358, in initAll
    registerSpectralLibraryIOs()
  File "/Users/jakimowb/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/enmapboxplugin/enmapbox/qgispluginsupport/qps/__init__.py", line 176, in registerSpectralLibraryIOs
    initSpectralLibraryIOs()
  File "/Users/jakimowb/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/enmapboxplugin/enmapbox/qgispluginsupport/qps/speclib/core/spectrallibraryio.py", line 1066, in initSpectralLibraryIOs
    from ..io.geopackage import GeoPackageSpectralLibraryIO
  File "/Users/jakimowb/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/__init__.py", line 38, in __wrapping_ee_import__
    _module_ = __builtin_import__(name, *args, **kwargs)
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 888, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/Users/jakimowb/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/enmapboxplugin/enmapbox/qgispluginsupport/qps/speclib/io/geopackage.py", line 6, in 
    from osgeo.gdalconst import DMD_CREATIONFIELDDATASUBTYPES
ImportError: cannot import name 'DMD_CREATIONFIELDDATASUBTYPES' from 'osgeo.gdalconst' (/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/GDAL-3.3.2-py3.9-macosx-10.13.0-x86_64.egg/osgeo/gdalconst.py)
janzandr commented 4 months ago

Hi @jakimowb, does that mean, that (currently) under macOS, the only way to use the EnMAP-Box is via Conda?

jakimowb commented 2 months ago

macOS installation has been updated in https://enmap-box.readthedocs.io/en/latest/usr_section/usr_installation.html#qgis-installation-on-macos