Проблемы с Geodjango и Gdal

Примечания:

Используется Django 4.0.5, и Python 3.10

IDE: Pycharm Professional

OSGEO4W версия: 2 (https://download.osgeo.org/osgeo4w/v2/)

Проблема

Я не могу заставить библиотеку gis работать в Django. Я следовал документации: https://docs.djangoproject.com/en/4.0/ref/contrib/gis/install/#windows. После выполнения этих шагов я получаю эту ошибку:

django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal303", "gdal302", "gdal301", "gdal300", "gdal204", "gdal203", "gdal202", "gdal201", "gdal20")

.

Затем я посмотрел, какая версия GDAL установлена в OSGEO4W, и обнаружил, что это gdal305. Поэтому я зашел на https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal, где скачал колесо для моей версии python (GDAL-3.3.3-cp310-cp310-win_amd64.whl) и использовал команду pip install GDAL-3.3.3-cp310-cp310-win_amd64.whl. Затем я изменил переменные пути, чтобы использовать эту версию gdal, а не ту, которая была установлена с OSgeo4W. Затем я получил следующую ошибку: OSError: [WinError 127] : The specified procedure could not be found

Почитав в интернете, я нашел следующий stackoverflow: OSError in Geodjango: [WinError 127] : Указанная процедура не может быть найдена

Однако, это не сработало для меня, я все еще получаю те же ошибки (в зависимости от того, где я установил путь к gdal).

Другие вещи, которые я пробовал:

  1. Я пытался использовать более раннюю версию OSgeo4W, но в программе установки не было доступных сайтов для загрузки.

  2. Я пробовал использовать anaconda вместо pycharm venv, и скачать gdal, proj, geos через conda-forge.

Если нужна дополнительная информация, пожалуйста, дайте мне знать. Впервые пишу на stackoverflow.

hi запустите это в cmd или терминале, открыв его как (запустите от имени администратора):

set OSGEO4W_ROOT=C:\OSGeo4W set PYTHON_ROOT=C:\Python3X set
 GDAL_DATA=%OSGEO4W_ROOT%\share\gdal set
 PROJ_LIB=%OSGEO4W_ROOT%\share\proj set
 PATH=%PATH%;%PYTHON_ROOT%;%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" /v
 PROJ_LIB /t REG_EXPAND_SZ /f /d "%PROJ_LIB%" 

затем добавьте это в код

 settings.py import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


 # use this if setting up on Windows 10 with GDAL installed from OSGeo4W using defaults 
 if os.name == 'nt':
      VIRTUAL_ENV_BASE = os.environ['VIRTUAL_ENV']
      os.environ['PATH'] = os.path.join(VIRTUAL_ENV_BASE, r'.\Lib\site-packages\osgeo') + ';' + os.environ['PATH']
      os.environ['PROJ_LIB'] = os.path.join(VIRTUAL_ENV_BASE, r'.\Lib\site-packages\osgeo\data\proj') + ';' + os.environ['PATH']
Вернуться на верх