When trying to create a geospatially-enabled table using the python sqlall command, I'm receiving problem that is apparently fairly common:
File "c:\Python26\lib\site-pack
ages\djang
o\contrib\
gis\db\bac
kends\post
gis\ope
rations.py", line 8, in <module>
from django.contrib.gis.geometr
y.backend import Geometry
File "c:\Python26\lib\site-pack
ages\djang
o\contrib\
gis\geomet
ry\backend
\__init
__.py", line 14, in <module>
'"%s".' % geom_backend)
django.core.exceptions.Imp
roperlyCon
figured: Could not import user-defined GEOME
TRY_BACKEND "geos".
Please note that I'm working in a Windows XP environment.
From what I've read, the most common reason for this issue is the failure of the system to recognize the GEOS library path, which apparently ends at libgeos_c.so. I've searched for this file on my system, and the closest I could find was libgeos_c-1.dll.
The available documentation indicates how to correct this for Linux and Unix systems, but not for Windows. I think I may have to set the GEOS_LIBRARY_PATH system variable, or maybe reconfigure GEOS, but I'm not sure how.
Here's my settings file:
************************
# Django settings for osp1a project.
DEBUG = True
TEMPLATE_DEBUG = DEBUG
ADMINS = (
# ('Your Name', 'your_email@domain.com'),
)
MANAGERS = ADMINS
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.bac
kends.post
gis', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'rw_vector', # Or path to database file if using sqlite3.
'USER': 'cshore11', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
# Local time zone for this installation. Choices can be found here:
#
http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# On Unix systems, a value of None will cause Django to use the same
# timezone as the operating system.
# If running in a Windows environment this must be set to the same as your
# system time zone.
TIME_ZONE = 'America/Chicago'
# Language code for this installation. All choices can be found here:
#
http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'en-us'
SITE_ID = 1
# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True
# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale
USE_L10N = True
# Absolute path to the directory that holds media.
# Example: "/home/media/media.lawrenc
e.com/"
MEDIA_ROOT = ''
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
# Examples: "
http://media.lawrence.com", "
http://example.com/media/"
MEDIA_URL = ''
# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
# trailing slash.
# Examples: "
http://foo.com/media/", "/media/".
ADMIN_MEDIA_PREFIX = '/media/'
# Make this unique, and don't share it with anybody.
SECRET_KEY = '_$82wxh2pq)vn@(esm7h2sz$x
lilwsgkyb6
60l#1yq2bm
726&u'
# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
'django.template.loaders.f
ilesystem.
Loader',
'django.template.loaders.a
pp_directo
ries.Loade
r',
# 'django.template.loaders.e
ggs.Loader
',
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.
CommonMidd
leware',
'django.contrib.sessions.m
iddleware.
SessionMid
dleware',
#'django.middleware.csrf.C
srfViewMid
dleware',
'django.contrib.auth.middl
eware.Auth
entication
Middleware
',
#'django.contrib.messages.
middleware
.MessageMi
ddleware',
)
ROOT_URLCONF = 'osp1a.urls'
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templat
es" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttyp
es',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
'django.contrib.gis',
'osp1a.osp1a_app',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs'
,
)
************************
and the models file:
************************
from django.contrib.gis.db import models
# Create your models here.
class Read_Write_Vector(models.M
odel):
id = models.IntegerField('ID')
cvr = models.CharField('COVER', max_length=20)
objects = models.GeoManager()
# Returns the string representation of the model.
def __unicode__(self):
return self.name
************************