Не удалось найти библиотеку GDAL в джанго. Что я могу сделать, чтобы решить эту проблему?

#django #gdal

Вопрос:

Я работаю в проекте django, и мне нужно использовать PointField импортированный из django.contrib.gis.db.models .

Чтобы использовать его, я установил GDAL by brew install gdal .

Когда я вошел gdal-config --version в терминал после его установки, я получил сообщение 3.3.1 .

Я полагаю, что это говорит об успешной установке GDAL.

Я также обновил настройку базы settings.py данных следующим образом.

 DATABASES = {
    'default': {
        "ENGINE": "django.contrib.gis.db.backends.mysql",
        'NAME': config("DB_PROD_NAME"),
        'USER': config("DB_USER"),
        "PASSWORD": config("DB_PASSWORD"),
        "HOST": config("DB_HOST"),
        "PORT": config("DB_PORT")
        },
    }
 

И это то models.py , где PointField используется.

 from django.contrib.gis.db import models

class Address(models.Model):
    address_name = models.CharField(max_length=100)
    address_name_detail = models.CharField(max_length=100)
    address_type = models.CharField(max_length=11)
    address_coord = models.PointField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        managed = False
        db_table = 'address'
 

Проблема в том, когда я пытаюсь python3 manage.py runserver или импортирую адрес модели в views.py ,

Я получаю сообщение об ошибке django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal", "GDAL", "gdal3.2.0", "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.

Путем добавления

 GDAL_LIBRARY_PATH = config('GDAL_LIBRARY_PATH')
GEOS_LIBRARY_PATH = config('GEOS_LIBRARY_PATH')
 

в settings.py , при вводе больше нет ошибки python3 manage.py runserver , но это не относится к импорту адресной модели.

Что я могу для этого сделать?

Я использую M1 Mackbook Air. Может ли это быть проблемой?

Комментарии:

1. Я предлагаю понизить рейтинг вашей версии gdal. Я попробовал версию 2.4.4, и она сработала, в то время как версия 3-нет. Я также нахожу, что установка gdal в среду conda менее подвержена проблемам. Все двоичные файлы включены.

2. @RobertDavy, значит, решение таково brew install gdal==2.4.4 или gdal@2.4.4 ? верно?

3. @alial-karaawi без комментариев — я почти всегда устанавливаю gdal в среды conda. Я считаю, что это устраняет большинство проблем с установкой gdal, с которыми сталкиваются люди. Инструкции по установке miniconda см. Здесь .

4. @RobertDavy Теперь я установил gdal с помощью conda Я активирую base среду, когда установлен gdal , и внутри нее я активировал свою среду pipenv, затем я запустил свое приложение, и оно по-прежнему показывает can't find gdal , как получить путь gdal, в котором установлен пакет?

5. полное сообщение об ошибке 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.