#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.