Flynnpc
Flynnpc

Reputation: 331

GeoDjango could not find GDAL library in Windows 10

I am using Django 11.4 on Windows 10 and I am having problems when I try and migrate my models. I receive this error:

django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal201", "gdal20", "gdal111", "gdal110", "gdal19")

I followed GeoDjango's installation instructions (https://docs.djangoproject.com/en/1.11/ref/contrib/gis/install/), but I am still having trouble. Everything I have found on this error says to change the system environment variables.

I installed OSGe4W and added GDAL_DATA = C:\OSGeo4W\share\gdal as well as PROJ_LIB= C:\OSGeo4W\share\proj.

I am not sure what else to try and I would appreciate any more insight.

Upvotes: 9

Views: 12446

Answers (4)

Mazhar Ali
Mazhar Ali

Reputation: 366

This solution works 100%. Try this if you haven't yet.

First, download the GDAL wheel from Here Make sure to check your python version by opening python in terminal. You will see an output like this :

Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:43:08) [MSC v.1926 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.

In the above lines the python version is 3.8.5 and its on 32 bit. So the package that I will have to choose from the link will be 'GDAL-3.3.3-cp38-cp38-win32.whl'. You should choose yours similarly.

After you do that just run

pip install whl/GDAL-3.3.3-cp38-cp38-win32.whl

After installling GDAL. Paste the following code into your settings.py file

import os
if os.name == 'nt':
    VENV_BASE = os.environ['VIRTUAL_ENV']
    os.environ['PATH'] = os.path.join(VENV_BASE, 'Lib\\site-packages\\osgeo') + ';' + os.environ['PATH']
    os.environ['PROJ_LIB'] = os.path.join(VENV_BASE, 'Lib\\site-packages\\osgeo\\data\\proj') + ';' + os.environ['PATH']

AND you are good to go.

Upvotes: 1

takje
takje

Reputation: 2800

After trying many solutions, including reinstalling, adding to paths etc, I found this relatively simple solution which worked for me.

https://stackoverflow.com/a/49159195/3768552

Upvotes: 0

Rob Goldsmith
Rob Goldsmith

Reputation: 183

I fixed this by editing the libgdal.py file in %PYTHONPATH%\Lib\site-packages\django\contrib\gis\gdal and adding str('gdal202') to line 26 so it reads:

 lib_names = [str('gdal201'), str('gdal202'), str('gdal111'), str('gdal110'), str('gdal19')]

Depending on what version of GDAL you are using, you may need to add a different version number.

Upvotes: 7

Brent Swekla
Brent Swekla

Reputation: 21

I had the same problem, and for me the issue was I had started my cmd shell before updating the PATH environment variable used to search for the GDAL library. I just had to restart my shell and everything worked.

Upvotes: 2

Related Questions