2016-10-04 102 views
0

首先,我是django的新手。我正在嘗試在Django 1.10的POSTGIS數據庫中使用GeoLite(GeoIP2)數據集。當我嘗試配置myapp/settings.py文件時,我收到了錯誤消息。似乎django目錄中的不同路徑中存在數據庫後端;您能否澄清原因?配置Postgresql POSTGIS數據庫

  1. Django的\的contrib \ GIS \ DB \後端\ PostGIS的
  2. Django的\ DB \後端

激活我的python3虛擬環境中,當我嘗試設置默認的數據庫在我的設置後。 PY文件的PostgreSQL(「django.db.backends.postgresql」),我得到一個錯誤:

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

當我嘗試使用POSTGIS作爲我的數據庫引擎(我設置在我的虛擬環境中GDAL_LIBRARY_PATH),我得到一個錯誤:

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’. 

你能提出對上述錯誤信息的可能解決方案嗎?謝謝。

回答

1

從Christopher Gohlke的網站(32位GDAL-2.0.3-cp35-cp35m-win32.whl)安裝GDAL到虛擬環境中。 下載OSGEO4W(32位)並安裝Express Web選項。 創建環境變量。如下所示設定環境變量:

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

我還設置LD_LIBRARY_PATH爲C:\ Python35-32 \ myvenv_python3 \ LIB \站點包\ OSGEO。 然後,數據庫配置不正確,無法導入'GDALRaster'。從您的django項目目錄中,現在可以使用以下命令進行遷移:python manage.py migrate