如何修复'django.core.exceptions.ImproperlyConfigured:找不到GDAL库'

时间:2019-10-18 05:19:54

标签: django python-3.x geodjango

我正在尝试在django数据库中存储商店的位置,我尝试安装geodjango的目的是给我上面的错误。

我已经安装 蟒蛇 PostgreSQL 奥斯格 psycopg2 还根据geodjango文档修改了环境变量

我尝试使用-http://www.gisinternals.com/query.html?content=filelist&file=release-1911-x64-gdal-2-2-3-mapserver-7-0-7.zip手动安装gdal 通用核心组件

我的settings.py文件-

import os
if os.name == 'nt':
    import platform
    OSGEO4W = r"C:\OSGeo4W"
    if '64' in platform.architecture()[0]:
        OSGEO4W += "64"
    assert os.path.isdir(OSGEO4W), "Directory does not exist: " + OSGEO4W
    os.environ['OSGEO4W_ROOT'] = OSGEO4W
    os.environ['GDAL_DATA'] = OSGEO4W + r"\share\gdal"
    os.environ['PROJ_LIB'] = OSGEO4W + r"\share\proj"
    os.environ['PATH'] = OSGEO4W + r"\bin;" + os.environ['PATH']


INSTALLED_APPS = [
...
'django.contrib.gis',
]

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'services',
        'USER': '*******',
        'HOST': 'localhost',
        'PASSWORD': '******',
        'PORT': '5434',
    }

我跑步时

python manage.py check

它给我错误

django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal202", "gdal201", "gdal20", "gdal111", "gdal110", "gdal19"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.

我已经将gdal库路径设置为gdal数据目录,但仍无法正常工作。

请帮助解决上面的问题。

还建议是否还有其他方法可以在django数据库中存储位置?

3 个答案:

答案 0 :(得分:0)

在GDAL库中也添加gdal300。从现在开始安装GDAL,您将获得 gdal300目录中的OSGeo4w64/bin。 接下来,您可能会得到一个错误:django.core.exceptions.ImproperlyConfigured: jsonfield dependency missing

有一个简单的解决方法。 pip install jsonfield

这应该有效。 如果这样不起作用

在命令提示符下将其作为bat脚本运行。

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%"

注意:您需要在c驱动器中重命名c:/OSGEO4w64' to c:/ OSGEO4w`才能使用上面显示的脚本。

在此处查找详细信息: https://docs.djangoproject.com/en/3.0/ref/contrib/gis/install/

答案 1 :(得分:0)

我运行了它,对我有用。

set OSGEO4W_ROOT=C:\OSGeo4W
set PYTHON_ROOT=C:\Python3X
set GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj

答案 2 :(得分:0)

我只是转而使用linux,它就起作用了。尽管问题出在某个地方,但Windows无法找到一个库,改用linux可以解决问题。