Heroku Django: Поиск неверной версии GDAL на новом стеке Heroku-22
Я пытаюсь перейти со стека Heroku-18 на Heroku-22 для моего веб-приложения Django. Чтобы использовать новый стек, мне пришлось перейти с Python 3.7.2 на Python 3.10.8.
Из того, что я видел на Stack Overflow до сих пор и в других источниках в интернете, я уже устанавливал GDAL/GIS правильным способом для приложения Django на Heroku. Это использование билдпака и его расположение первым в списке билдпаков:
remote: Building source:
remote:
remote: -----> Building on the Heroku-22 stack
remote: -----> Using buildpacks:
remote: 1. https://github.com/heroku/heroku-geo-buildpack.git
remote: 2. heroku/python
Я ожидал, что проблем с обновлением не будет, но теперь по какой-то причине у него проблемы с поиском GDAL. Вот версии, которые устанавливаются:
remote: -----> Geo Packages (GDAL/GEOS/PROJ) app detected
remote: -----> Installing GDAL-2.4.0
remote: -----> Installing GEOS-3.7.2
remote: -----> Installing PROJ-5.2.0
Вот ошибка, которую я получаю.
Обратите внимание, что он не ищет gdal2.4.0
, который установлен. Однако он ищет gdal
, который, я надеюсь, будет покрыт этой установкой.
django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal", "GDAL", "gdal2.2.0", "gdal2.1.0", "gdal2.0.0", "gdal1.11.0", "gdal1.10.0", "gdal1.9.0"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.
Хотя в ответе на этот вопрос говорится, что не следует устанавливать переменную GDAL_LIBRARY_PATH
, я думаю, что одним из возможных решений было бы установить ее в любом случае. Однако я не уверен, куда устанавливается GDAL, поскольку он вообще не может быть установлен без сбоя сборки и возникновения ошибки.
Если кто-нибудь знает решение, это было бы супер полезно. Огромное спасибо!!!
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Источники, просмотренные ранее:
- Django с GDAL выбрасывает ошибку при развертывании на Heroku
- Отсутствие GDAL на Heroku
- https://help.heroku.com/D5INLB1A/python-s-build_with_geo_libraries-legacy-feature-is-no-longer-supported
Полная трассировка ошибки:
Какую версию Django вы используете? Я подозреваю, что она довольно старая.
Список поддерживаемых версий GDAL для Django 2.1 совпадает со списком в вашем сообщении об ошибке:
- 2.2
- 2.1
- 2.0
- 1.11
- 1.10
- 1.9
Для получения поддержки GDAL 2.4 вам придется перейти как минимум на Django 3.0 , но даже эта версия уже далеко за пределами периода расширенной поддержки , который закончился 6 апреля 2021 года.
Я предлагаю вам обновить Django 3.2, по крайней мере, до самой старой активно поддерживаемой версии. Это LTS-релиз, который будет поддерживаться до апреля 2024 года.