Решение для установки GDAL/PROJ/GEOS в windows 10 для Django/Geodjango
Вам трудно установить библиотеку GDAL или вы смогли установить ее, но не знаете, как заставить ее работать в Django для вашего приложения geoDjango, я хотел бы поделиться тем, как я смог успешно заставить ее работать для меня. Надеюсь, я не пропущу ни одного шага, так как мне потребовалось несколько дней, чтобы заставить его работать.
Для работы geoDjango необходимы некоторые бесплатные геопространственные библиотеки, которые он использует во встроенном приложении django.contrib.gis, и я покажу вам, как их установить.
Шаг 1: Загрузка osgeo4w
По какой-то причине ссылка на скачивание с сайта хостинга https://trac.osgeo.org/osgeo4w/ не работает должным образом, либо она вообще не работает в хроме, либо загружает 32-битный файл в firefox, но, похоже, работает нормально в браузере Edge. Альтернативой является использование ссылки QGIS https://qgis.org/en/site/forusers/download.html.
Вы получите загруженный файл в виде osgeo4w-setup.exe.
Шаг 2: Установка
Они говорят использовать экспресс-установку, которая, я уверен, не работает, потому что я пробовал ее не менее 30 раз, и каждая загрузка стоила чуть больше 500 МБ. Используйте расширенную установку, потому что это то, что сработало для меня. Нажмите на
- Next >кнопка
- Выберите Install from internet и нажмите Next >
- Убедитесь, что Just Me выбрана опция Next > .
- Оставьте путь по умолчанию на четвертой странице, если у вас нет причин для этого, и нажмите Next > .
- Выберите Прямое соединение и нажмите Далее > .
- Следующий этап был важен для моего процесса, из доступных сайтов для загрузки библиотек выберите http://www.norbit.de, таким образом, 3-я ссылка .
- Отсюда нажмите на Next > до начала загрузки, у вас должно быть не менее 600MB интернета для завершения загрузки.
В будущем все может немного измениться, поэтому будьте осторожны.
Шаг 3: Изменение среды Windows
Открыть командную строку в административном режиме для административных привилегий". Затем вы можете скопировать и вставить их друг за другом в том порядке, в котором они появляются.
Это для систем win64 по состоянию на 2022 год, поскольку именно они поддерживаются, если вы используете win32, убедитесь, что вы загрузили 32-битную версию OSGeo4W/GDAL, те же команды будут работать.
- set OSGEO4W_ROOT=C:\OSGeo4W
- set GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
- set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
- set PATH=%PATH%;%OSGEO4W_ROOT%\bin
- reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /f /d "%PATH%"
- reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"/v GDAL_DATA /t REG_EXPAND_SZ /f /d "%GDAL_DATA%"
- reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment Manager\Environment" /v PROJ_LIB /t REG_EXPAND_SZ /f /d "%PROJ_LIB%"
См. django Doc для всех команд выше.
После завершения работы вы можете проверить переменные среды, чтобы подтвердить свои изменения, набрав в строке поиска windows:
отредактируйте переменные системного окружения
Нажмите на кнопку Переменные среды и в разделе системных переменных прокрутите и дважды щелкните на Path. Здесь вы должны увидеть путь к вашему python, а также "C:\OSGeo4W" и "C:\OSGeo4W\bin", если нет, нажмите на New и добавьте их самостоятельно.
После успешного завершения нажмите OK во всех открытых окнах, вернитесь в среду python и в командной строке используйте pip для установки psycopg2, если вы будете работать с Postgres.
pip install psycopg2
Шаг 4: Настройка django.
После успешного завершения, когда вы откроете cmd и введете gdalinfo --version вы должны увидеть версию установленного gdal, но когда вы запустите django (python manage.py check or runserser) вы получите эту ошибку в большинстве случаев в зависимости от версии gdal, которую вы установили, и если вы не получите ошибку при запуске django, то все в порядке и нет необходимости следовать остальным пунктам ответа.
rise ImproperlyConfigured(django.core.exceptions.ImproperlyConfigured: Не удалось найти библиотеку GDAL (пробовали "gdal303", "gdal302", "gdal301", "gdal300", "gdal204", "gdal203", "gdal202", "gdal201", "gdal20"). Установлен ли GDAL? Если да, попробуйте установить GDAL_LIBRARY_PATH в настройках.
Для решения этой проблемы перейдите в системную папку, содержащую OSGeo4W, чаще всего она находится здесь C:\OSGeo4Wоткройте ее, найдите и откройте bin. Найдите в папке bin самый большой файл с именем gdal***.dll.
Число ***, если у вас объем памяти менее 60 секунд, запишите это число где-нибудь и зайдите в вашу среду python, где установлен django, и перейдите по этому пути:
.\env\Lib\site-packages\django\contrib\gis\gdal
.
и откройте libgdal.py файл вашим любимым редактором.
Прокрутите вниз до строки 24, в списке lib_names добавьте номер *** в список в виде строки, мой был 304. Таким образом, получается что-то вроде этого
lib_names = [
"gdal303", "gdal302", "gdal301", "gdal300", "gdal204", "gdal203", "gdal202", "gdal201", "gdal20", "gdal304", ]
Также на строке 38 добавьте версию gdal с префиксом gdal следующим образом "gdal3.4.2", вы получите версию, когда наберете gdalinfo --version в командной строке.
Сохраните файл и готово, теперь вы можете запускать ваше приложение Geodjango без проблем. Удачи.