1

I have GDAL (using homebrew) and SQLite installed. I would like to create a teacher with a PointField() which stores long and lat values, to know their location. Later I plan on adding the ability to search by distance using something like:

Teacher.objects.filter(location__distance_lte=(your_location,D(m=distance))).distance(your_location).order_by('distance')

models.py

from django.db import models
from django.contrib.gis.db import models as gis_models
from django.contrib.auth.models import User

class Teacher(models.Model):
    user = models.ForeignKey(User, unique=True)
    location = gis_models.PointField()
    availability = models.BooleanField(default=False)

However, when I run the server, I get the following error:

Unhandled exception in thread started by <function
check_errors.<locals>.wrapper at 0x111c619d8>
    Traceback (most recent call last):
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/utils/autoreload.py",
line 227, in wrapper
        fn(*args, **kwargs)
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/commands/runserver.py",
line 117, in inner_run
        autoreload.raise_last_exception()
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/utils/autoreload.py",
line 250, in raise_last_exception
        six.reraise(*_exception)
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/utils/six.py",
line 685, in reraise
        raise value.with_traceback(tb)
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/utils/autoreload.py",
line 227, in wrapper
        fn(*args, **kwargs)
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/__init__.py",
line 27, in setup
        apps.populate(settings.INSTALLED_APPS)
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/apps/registry.py",
line 108, in populate
        app_config.import_models()
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/apps/config.py",
line 202, in import_models
        self.models_module = import_module(models_module_name)
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/importlib/__init__.py",
line 126, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 978, in _gcd_import
      File "<frozen importlib._bootstrap>", line 961, in _find_and_load
      File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 678, in exec_module
      File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
      File "/Users/gr/Desktop/PycharmProjects/DjangoWebsite/users/models.py",
line 2, in <module>
        from django.contrib.gis.db import models as gis_models
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/contrib/gis/db/models/__init__.py",
line 3, in <module>
        from django.contrib.gis.db.models.aggregates import *  # NOQA
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/contrib/gis/db/models/aggregates.py",
line 1, in <module>
        from django.contrib.gis.db.models.fields import ExtentField
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/contrib/gis/db/models/fields.py",
line 3, in <module>
        from django.contrib.gis import forms, gdal
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/contrib/gis/forms/__init__.py",
line 3, in <module>
        from .fields import (  # NOQA
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/contrib/gis/forms/fields.py",
line 4, in <module>
        from django.contrib.gis.geos import GEOSException, GEOSGeometry
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/contrib/gis/geos/__init__.py",
line 18, in <module>
        HAS_GEOS = geos_version_info()['version'] >= '3.3.0'
      File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/contrib/gis/geos/libgeos.py",
line 196, in geos_version_info
        raise GEOSException('Could not parse version info string "%s"' % ver)
    django.contrib.gis.geos.error.GEOSException: Could not parse version info string "3.6.2-CAPI-1.10.2 4d2925d6"
Brown Bear
  • 19,655
  • 10
  • 58
  • 76
Roma
  • 449
  • 6
  • 23
  • did you look for the same trouble? https://stackoverflow.com/questions/18643998/geodjango-geosexception-error and the ticket https://code.djangoproject.com/ticket/28441 ? – Brown Bear Aug 18 '17 at 17:26

1 Answers1

0

This is a known issue, which has been fixed and will be rolled out in Django v1.11.5.

If you can't wait for 1.11.5 or don't want to run on the dev branch, you can go to a previous version of geos:

brew switch geos 3.6.1
dirkgroten
  • 20,112
  • 2
  • 29
  • 42