Проблема с установкой GeoDjango Не удалось найти библиотеку GDAL

Я следовал инструкции: https://docs.djangoproject.com/en/4.0/ref/contrib/gis/install/ для Windows 10 Я скачал Postgres и добавил установленный Postgis. Затем OSGeo4W в папке C:\OSGeo4W и выполнил пункт Modify Windows environment

Я создаю новый проект и одно приложение.

В settings.py добавлены:

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'geodjango',
        'USER': 'geo',
    },
}

После запуска py manage.py runserver я получаю ошибку: django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (пробовал "gdal303", "gdal302", "gdal301", "gdal300", "gdal204", "gdal203", "gdal202", "gdal201", "gdal20"). Установлен ли GDAL? Если да, попробуйте установить GDAL_LIB RARY_PATH в ваших настройках.

Я добавляю (Python Root)\Lib\site-packages\django\contrib\gis\gdal\libgdal.py "gdal305", потому что этот файл у меня находится в C:\OSGeo4W\bin. Я получаю ошибку: FileNotFoundError: Не удалось найти модуль 'C:\OSGeo4W\bin\gdal305.dll' (или одну из его зависимостей). Попробуйте использовать полный путь с синтаксисом конструктора. (этот путь подходит) В settings.py я добавляю: GDAL_LIBRARY_PATH = r'C:\OSGeo4W\bin\gdal505', но у меня появляется та же ошибка, что и раньше. Поэтому я пробую в settings.py:

import os
if os.name == 'nt':
    import platform
    OSGEO4W = r"C:\OSGeo4W"
    if '64' in platform.architecture()[0]:
        OSGEO4W += "64"
    assert os.path.isdir(OSGEO4W), "Directory does not exist: " + OSGEO4W
    os.environ['OSGEO4W_ROOT'] = OSGEO4W
    os.environ['GDAL_DATA'] = OSGEO4W + r"\share\gdal"
    os.environ['PROJ_LIB'] = OSGEO4W + r"\share\proj"
    os.environ['PATH'] = OSGEO4W + r"\bin;" + os.environ['PATH']

И я все еще получаю ту же ошибку : FileNotFoundError: Не удалось найти модуль 'C:\OSGeo4W\bin\gdal305.dll' (или одну из его зависимостей). Попробуйте использовать полный путь с синтаксисом конструктора

Версия Python 3.9.2 64bit В тот момент, когда я хочу проверить версию OSGeo4W, я получаю информацию, что не нахожу файл. Введите описание изображения здесь

введите описание изображения здесь

Пожалуйста, больше советов.

Проверьте, есть ли gdal305.dll в папке OSGEO4W/bin. Если он там есть, то проверьте, включили ли вы gdal305 в файл libgdal.py.

elif os.name == "nt":
    # Windows NT shared libraries
    lib_names = [
        "gdal305",
        "gdal304",
        "gdal303",
        "gdal302",
        "gdal301",
        "gdal300",
        "gdal204",
        "gdal203",
        "gdal202",
        "gdal201",
        "gdal20",
    ]

Затем перезапустите приложение и проверьте, работает ли оно.

Вернуться на верх