This comes from the continuation of my question here :
error in GDAL setup command: use_2to3 is invalid
Since the nature of error has changed, its important to post it separately. I'm running Django rest api with the django 3.2 on GCPUbuntu 18.04 LTS. I'm facing a problem when I run docker-compose command. The trace points to Gdal
Because of conflicts between setuptools==67.6.0 and gdal==2.4.2 and causing the previous error in the linked question (which isn't solved), I attempted the following :
I removed gdal package in requirements.txt and used the following :
sudo apt install libgdal-dev
pip3 install GDAL==$(gdal-config --version | awk -F'[.]' '{print $1"."$2}')
The above shows to use legacy setup.py and it recognized gdal-config version to be 2.4 (rather than 2.4.2) and installed it.
Now when I run docker-compose and the containers I get the following :
django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal", "GDAL", "gdal3.1.0", "gdal3.0.0", "gdal2.4.0", "gdal2.3.0", "gdal2.2.0", "gdal2.1.0", "gdal2.0.0"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.
setuptools for other packages remains at 67.6.0 while gdal is separately installed (not from requirements.txt) using a legacy installer.
I have already tried :
sudo apt install libgdal-dev --upgrade
sudo apt-get install gdal-bin --upgrade
which are solutions mentioned for user facing a similar problem.
EDIT : Based on recommendation of @phd, Adding GDAL_LIBRARY_PATH to my settings.py after referring to the post : https://github.com/moose46/Jobbee/blob/master/backend/backend/settings.py#L156 https://docs.djangoproject.com/en/4.1/ref/contrib/gis/install/geolibs/#gdal-library-path
Proposed solution :
VIRTUAL_ENV_BASE = os.environ.get("ENVIRONMENT")
GDAL_LIBRARY_PATH = VIRTUAL_ENV_BASE + "/home/earthling/myEnv/lib/python3.8/site-packages/osgeo/gdal304.dll"
However , The following is inside osgeo folder,gdal304.dll isnt there.
Getting the following trace now after running docker-compose:
OSError: development/home/earthling/myEnv/lib/python3.8/site-packages/osgeo/gdal304.dll: cannot open shared object file: No such file or directory
EDIT : 12/03/2023 After adding
GDAL_LIBRARY_PATH = "/usr/lib/libgdal.so.20.5.2"
Getting the following trace :
my-api-webserver | Traceback (most recent call last):
my-api-webserver | File "manage.py", line 25, in <module>
my-api-webserver | execute_from_command_line(sys.argv)
my-api-webserver | File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
my-api-webserver | utility.execute()
my-api-webserver | File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 395, in execute
my-api-webserver | django.setup()
my-api-webserver | File "/usr/local/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
my-api-webserver | apps.populate(settings.INSTALLED_APPS)
my-api-webserver | File "/usr/local/lib/python3.8/site-packages/django/apps/registry.py", line 114, in populate
my-api-webserver | app_config.import_models()
my-api-webserver | File "/usr/local/lib/python3.8/site-packages/django/apps/config.py", line 301, in import_models
my-api-webserver | self.models_module = import_module(models_module_name)
my-api-webserver | File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
my-api-webserver | return _bootstrap._gcd_import(name[level:], package, level)
my-api-webserver | File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
my-api-webserver | File "<frozen importlib._bootstrap>", line 991, in _find_and_load
my-api-webserver | File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
my-api-webserver | File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
my-api-webserver | File "<frozen importlib._bootstrap_external>", line 843, in exec_module
my-api-webserver | File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
my-api-webserver | File "/opt/my-api/kosmosnetwork_socialcommerce/src/commerce/apps/stores/models.py", line 3, in <module>
my-api-webserver | from . import abstract_models
my-api-webserver | File "/opt/my-api/kosmosnetwork_socialcommerce/src/commerce/apps/stores/abstract_models.py", line 1, in <module>
my-api-webserver | from django.contrib.gis.db.models import Manager, PointField
my-api-webserver | File "/usr/local/lib/python3.8/site-packages/django/contrib/gis/db/models/__init__.py", line 3, in <module>
my-api-webserver | import django.contrib.gis.db.models.functions # NOQA
my-api-webserver | File "/usr/local/lib/python3.8/site-packages/django/contrib/gis/db/models/functions.py", line 3, in <module>
my-api-webserver | from django.contrib.gis.db.models.fields import BaseSpatialField, GeometryField
my-api-webserver | File "/usr/local/lib/python3.8/site-packages/django/contrib/gis/db/models/fields.py", line 3, in <module>
my-api-webserver | from django.contrib.gis import forms, gdal
my-api-webserver | File "/usr/local/lib/python3.8/site-packages/django/contrib/gis/forms/__init__.py", line 3, in <module>
my-api-webserver | from .fields import ( # NOQA
my-api-webserver | File "/usr/local/lib/python3.8/site-packages/django/contrib/gis/forms/fields.py", line 2, in <module>
my-api-webserver | from django.contrib.gis.gdal import GDALException
my-api-webserver | File "/usr/local/lib/python3.8/site-packages/django/contrib/gis/gdal/__init__.py", line 28, in <module>
my-api-webserver | from django.contrib.gis.gdal.datasource import DataSource
my-api-webserver | File "/usr/local/lib/python3.8/site-packages/django/contrib/gis/gdal/datasource.py", line 40, in <module>
my-api-webserver | from django.contrib.gis.gdal.driver import Driver
my-api-webserver | File "/usr/local/lib/python3.8/site-packages/django/contrib/gis/gdal/driver.py", line 5, in <module>
my-api-webserver | from django.contrib.gis.gdal.prototypes import ds as vcapi, raster as rcapi
my-api-webserver | File "/usr/local/lib/python3.8/site-packages/django/contrib/gis/gdal/prototypes/ds.py", line 9, in <module>
my-api-webserver | from django.contrib.gis.gdal.libgdal import GDAL_VERSION, lgdal
my-api-webserver | File "/usr/local/lib/python3.8/site-packages/django/contrib/gis/gdal/libgdal.py", line 50, in <module>
my-api-webserver | lgdal = CDLL(lib_path)
my-api-webserver | File "/usr/local/lib/python3.8/ctypes/__init__.py", line 373, in __init__
my-api-webserver | self._handle = _dlopen(self._name, mode)
my-api-webserver | OSError: /usr/lib/libgdal.so.20.5.2: cannot open shared object file: No such file or directory
my-api-webserver exited with code 1