Django使用空间数据的配置

使用Django(2.2.10)+ MySQL(8.0)存储空间信息中遇到的坑,记录下。

配置

官方文档地理信息库安装
适用于Python扩展程序包的非官方Windows二进制文件

需要安装的库

GDAL-2.2.4-cp37-cp37m-win_amd64.whl
osgeo4w
链接:https://pan.baidu.com/s/1Q8Y9MnX4PYsrzxAfAEioxw
提取码:sp9w

代码配置

项目的 settings.py

# 你环境的绝对路径 使用 append  ,不要 os.environ['PATH']  这样会影响其它库
# os.environ['PATH'] = r'C:\program_soft\Anaconda3\envs\gis_project\Lib\site-packages\osgeo'
os.sys.path.append(r'C:\a_program_soft\Anaconda3\envs\test\Lib\site-packages\osgeo')
os.environ['GDAL_DATA'] = r'C:\a_program_soft\Anaconda3\envs\truck\Lib\site-packages\osgeo\data\gdal'

GDAL_LIBRARY_PATH = r'C:\a_program_soft\Anaconda3\envs\truck\Lib\site-packages\osgeo\gdal202.dll'

INSTALLED_APPS = [

    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 引入这个
    'django.contrib.gis',
]

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.mysql',
        'ENGINE': 'django.contrib.gis.db.backends.mysql',
        'NAME': 'test',
        'USER': 'root',
        'PASSWORD': '',
        'PORT': '3308',
        'HOST': 'localhost',
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
        },
    }
}

一些错误

GDAL_LIBRARY_PATH in your settings.

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

方法:

  1. 安装 GDAL-3.0.4-cp37-cp37m-win_amd64.whl


    image.png
  2. 默认的列表没有 gdal300 添加


    image.png

    image.png
  3. 然后增加 GDAL_LIBRARY_PATH
项目settings.py
GDAL_LIBRARY_PATH = 'C:\program_soft\Anaconda3\envs\\test\Lib\site-packages\osgeo\gdal300.dll'

OSError: [WinError 126] 找不到指定的模块。

image.png
# 这一句
os.sys.path.append(r'C:\a_program_soft\Anaconda3\envs\test\Lib\site-packages\osgeo')

大概率没解决,就需要安装 osgeo4w ,把C:\OSGeo4W64\bin配置到系统的 path 路径

image.png

image.png

注意选这个,下载速度比较快,其他的可能比较慢(这是我使用时候的状态)
image.png

你可能感兴趣的:(Django使用空间数据的配置)