配置Postgresql POSTGIS数据库 [英] Configuring a Postgresql POSTGIS database

查看:987
本文介绍了配置Postgresql POSTGIS数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

首先,我是django的新手。我正在Django 1.10中的POSTGIS数据库中使用GeoLite(GeoIP2)数据集。当我尝试配置myapp / settings.py文件时,我会收到错误消息。django目录中的不同路径中似乎有数据库后端;您能否澄清为什么?


  1. django\contrib\gis\db\backends\postgis

  2. django\db\backends

激活我的python3虚拟环境后,当我尝试将我的settings.py文件中的默认数据库设置为postgresql('django.db.backends.postgresql' ),我收到一个错误:

  AttributeError:数据库操作对象没有属性geo_db_type。 

当我尝试使用POSTGIS作为我的数据库引擎(我的虚拟环境中设置了GDAL_LIBRARY_PATH)我收到一个错误:

  django.contrib.gis.db.backends.postgis'不是可用的数据库后端。尝试使用'django.db.backends.XXX',其中XXX是'mysql','oracle','postgresql'和'sqlite'之一。 
错误是:无法导入名称GDALRaster。

您可以为上述错误消息提出可能的解决方案吗?谢谢。

解决方案

从Christopher Gohlke的网站安装GDAL(32位GDAL-2.0.3-cp35-cp35m-win32.whl )进入虚拟环境。
下载OSGEO4W(32位)并安装Express Web选项。
创建环境变量。设置环境变量如下:


设置PYTHON_ROOT = C:\Python35-32设置GDAL_DATA = C:\Program
Files \PostgreSQL\9.6\gdal-data set PROJ_LIB = C:\Program
Files \PostgreSQL\9.6\share\contrib\postgis\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%


我还将LD_LIBRARY_PATH设置为C:\Python35-32\myvenv_python3\Lib\site- packages\osgeo 。
然后,数据库配置不正确,无法导入GDALRaster。从您的django项目目录中,可以使用以下方式进行迁移:python manage.py migrate


First off, I am new to django. I am trying to use GeoLite(GeoIP2) datasets in my POSTGIS database in Django 1.10. When I attempt to configure the myapp/settings.py file, i get error messages.There seem to be database backends in different paths in the django directory;Can you please clarify why?

  1. django\contrib\gis\db\backends\postgis
  2. django\db\backends

After activating my python3 virtual environment, when i try to set the default database in my settings.py file as postgresql('django.db.backends.postgresql'), i get an error:

AttributeError:"Database Operations’ object has no attribute ‘geo_db_type’.

When i try to use POSTGIS as my database engine (i set the GDAL_LIBRARY_PATH in my virtual environment), i get an error:

django.contrib.gis.db.backends.postgis' is not an available database backend. Try using 'django.db.backends.XXX', where XXX is one of 'mysql', 'oracle', 'postgresql',and 'sqlite'.
Error was: Cannot import name ‘GDALRaster’.

Can you suggest possible solutions to the above error messages? Thank you.

解决方案

Installed GDAL from Christopher Gohlke’s site (32 bit GDAL-2.0.3-cp35-cp35m-win32.whl)into the virtual environment. Download OSGEO4W (32 bit) and install the Express Web option. Create Environment Variables. Set the environment variables as below:

set PYTHON_ROOT=C:\Python35-32 set GDAL_DATA=C:\Program Files\PostgreSQL\9.6\gdal-data set PROJ_LIB=C:\Program Files\PostgreSQL\9.6\share\contrib\postgis\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%"

I also set LD_LIBRARY_PATH as C:\Python35-32\myvenv_python3\Lib\site-packages\osgeo. Then, the database is Improperly configured and cannot import 'GDALRaster' went away.From your django project directory, it would be possible to migrate now using: python manage.py migrate

这篇关于配置Postgresql POSTGIS数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆