[Django] #23901: Unable to load the SpatiaLite library extension "/usr/local/lib/libspatialite.dylib"

67 views
Skip to first unread message

Django

unread,
Nov 23, 2014, 7:49:15 PM11/23/14
to django-...@googlegroups.com
#23901: Unable to load the SpatiaLite library extension
"/usr/local/lib/libspatialite.dylib"
----------------------------------------------+------------------------
Reporter: kenial | Owner: nobody
Type: Bug | Status: new
Component: Database layer (models, ORM) | Version: 1.7
Severity: Normal | Keywords: spatialite
Triage Stage: Unreviewed | Has patch: 1
Easy pickings: 0 | UI/UX: 0
----------------------------------------------+------------------------
Installing libspatialite package with Homebrew on OS X and using
django.contrib.gis.db.backends.spatialite as a database backend, I met
this exception:

{{{
Traceback (most recent call last):
File "manage.py", line 14, in <module>
execute_from_command_line(sys.argv)
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/core/management/__init__.py", line 385, in
execute_from_command_line
utility.execute()
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/core/management/__init__.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/core/management/base.py", line 338, in execute
output = self.handle(*args, **options)
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/core/management/commands/migrate.py", line 63, in handle
executor = MigrationExecutor(connection,
self.migration_progress_callback)
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/db/migrations/executor.py", line 17, in __init__
self.loader = MigrationLoader(self.connection)
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/db/migrations/loader.py", line 48, in __init__
self.build_graph()
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/db/migrations/loader.py", line 179, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/db/migrations/recorder.py", line 59, in applied_migrations
self.ensure_schema()
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/db/migrations/recorder.py", line 49, in ensure_schema
if self.Migration._meta.db_table in
self.connection.introspection.get_table_list(self.connection.cursor()):
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/db/backends/__init__.py", line 165, in cursor
cursor = self.make_debug_cursor(self._cursor())
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/db/backends/__init__.py", line 138, in _cursor
self.ensure_connection()
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/db/backends/__init__.py", line 133, in ensure_connection
self.connect()
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/db/backends/__init__.py", line 122, in connect
self.connection = self.get_new_connection(conn_params)
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/contrib/gis/db/backends/spatialite/base.py", line 65, in
get_new_connection
six.reraise(ImproperlyConfigured, ImproperlyConfigured(new_msg),
sys.exc_info()[2])
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/contrib/gis/db/backends/spatialite/base.py", line 60, in
get_new_connection
cur.execute("SELECT load_extension(%s)", (self.spatialite_lib,))
File "/Users/kenial/.virtualenvs/fp/lib/python2.7/site-
packages/django/db/backends/sqlite3/base.py", line 485, in execute
return Database.Cursor.execute(self, query, params)
django.core.exceptions.ImproperlyConfigured: Unable to load the SpatiaLite
library extension "/usr/local/lib/libspatialite.dylib" because:
dlsym(0x7f8bf32f8000, sqlite3_spatialite_init): symbol not found
}}}

On Homebrew's SpatiaLite 4.2.0 package what I've got, it provides both
libspatialite.7.dylib and mod_spatialite.7.dylib. For its proper working,
sqlite3 should load mod_spatialite instead of libspatialite, but it seems
not detecting right package with ctypes.util.find_library('spatialite').
In case using find_library('mod_spatialite'), it does work.

--
Ticket URL: <https://code.djangoproject.com/ticket/23901>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Nov 23, 2014, 7:58:55 PM11/23/14
to django-...@googlegroups.com
#23901: Unable to load the SpatiaLite library extension
"/usr/local/lib/libspatialite.dylib"
-------------------------------------+-------------------------------------

Reporter: kenial | Owner: nobody
Type: Bug | Status: new
Component: Database layer | Version: 1.7
(models, ORM) | Resolution:
Severity: Normal | Triage Stage:
Keywords: spatialite | Unreviewed
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by kenial):

* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0


Old description:

New description:

I think it might be a problem of entry point, however, the
sqlite3_spatialite_init symbol is in mod_spatialite.7.dylib at least, for
it works.

--

--
Ticket URL: <https://code.djangoproject.com/ticket/23901#comment:1>

Django

unread,
Nov 23, 2014, 8:01:53 PM11/23/14
to django-...@googlegroups.com
#23901: Unable to load the SpatiaLite library extension
"/usr/local/lib/libspatialite.dylib"
-------------------------------------+-------------------------------------

Reporter: kenial | Owner: nobody
Type: Bug | Status: new
Component: Database layer | Version: 1.7
(models, ORM) | Resolution:
Severity: Normal | Triage Stage:
Keywords: spatialite | Unreviewed
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Description changed by kenial:

Old description:

> I think it might be a problem of entry point, however, the
> sqlite3_spatialite_init symbol is in mod_spatialite.7.dylib at least, for
> it works.

New description:

I think it might be a problem of entry point, however, the


sqlite3_spatialite_init symbol is in mod_spatialite.7.dylib at least, for
it works.


p.s: For sure, you can avoid this by declaring sptialite library path
manually in settings.py, like as:
{{{
SPATIALITE_LIBRARY_PATH='/usr/local/lib/mod_spatialite.dylib'
}}}

--

--
Ticket URL: <https://code.djangoproject.com/ticket/23901#comment:2>

Django

unread,
Nov 23, 2014, 8:12:00 PM11/23/14
to django-...@googlegroups.com
#23901: Unable to load the SpatiaLite library extension
"/usr/local/lib/libspatialite.dylib"
-------------------------------------+-------------------------------------

Reporter: kenial | Owner: nobody
Type: Bug | Status: new
Component: Database layer | Version: 1.7
(models, ORM) | Resolution:
Severity: Normal | Triage Stage:
Keywords: spatialite | Unreviewed
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Description changed by kenial:

Old description:

> Installing libspatialite package with Homebrew on OS X and using

> I think it might be a problem of entry point, however, the
> sqlite3_spatialite_init symbol is in mod_spatialite.7.dylib at least, for
> it works.
>

> p.s: For sure, you can avoid this by declaring sptialite library path
> manually in settings.py, like as:
> {{{
> SPATIALITE_LIBRARY_PATH='/usr/local/lib/mod_spatialite.dylib'
> }}}

New description:

Installing libspatialite package with Homebrew on OS X and using
django.contrib.gis.db.backends.spatialite as a database backend, I met

this exception (using Homebrew 0.9.5, checked on OS X 10.10.1 and OS X
10.8.5) :

I think it might be a problem of entry point, however, the


sqlite3_spatialite_init symbol is in mod_spatialite.7.dylib at least, for
it works.


p.s: For sure, you can avoid this by declaring sptialite library path
manually in settings.py, like as:
{{{
SPATIALITE_LIBRARY_PATH='/usr/local/lib/mod_spatialite.dylib'
}}}

--

--
Ticket URL: <https://code.djangoproject.com/ticket/23901#comment:3>

Django

unread,
Nov 25, 2014, 10:31:16 AM11/25/14
to django-...@googlegroups.com
#23901: Unable to load the SpatiaLite library extension
"/usr/local/lib/libspatialite.dylib"
--------------------------------------+------------------------------------
Reporter: kenial | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Documentation | Version: 1.7
Severity: Normal | Resolution:
Keywords: spatialite | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------
Changes (by timgraham):

* type: Bug => Cleanup/optimization
* has_patch: 1 => 0
* component: Database layer (models, ORM) => Documentation
* stage: Unreviewed => Accepted


Comment:

I think it'd probably be better to include a note in the documentation
about this (suggest using the setting) rather than hardcoding a workaround
in Django for what appears to be a non-standard library name.

--
Ticket URL: <https://code.djangoproject.com/ticket/23901#comment:4>

Django

unread,
Nov 25, 2014, 1:38:02 PM11/25/14
to django-...@googlegroups.com
#23901: Unable to load the SpatiaLite library extension
"/usr/local/lib/libspatialite.dylib"
-------------------------------------+-------------------------------------
Reporter: kenial | Owner: nobody
Type: | Status: new
Cleanup/optimization | Version: 1.7
Component: Documentation | Resolution:

Severity: Normal | Triage Stage:
Keywords: spatialite | Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by kenial):

* stage: Accepted => Unreviewed


Comment:

Agreed. But I have no idea where I begin to work on - for this is my first
contributing on django - , may I ask you few questions?

- I think this document url is right position to start, you know, it's
sort of outdated. Is it better to leave contents for older version
(KyngChaos packages and its SpatiaLite version is 2.3.1, current
SpatiaLite version supported by Homebrew is 4.2.0), or get rid of them?
What do you think?
https://docs.djangoproject.com/en/1.7/ref/contrib/gis/install/spatialite
/#spatialite-macosx

- Is it same way updating document with posting codes with pull requests?
(specifically, commiting to path /docs on Django repo)

--
Ticket URL: <https://code.djangoproject.com/ticket/23901#comment:5>

Django

unread,
Nov 25, 2014, 1:47:39 PM11/25/14
to django-...@googlegroups.com
#23901: Unable to load the SpatiaLite library extension
"/usr/local/lib/libspatialite.dylib"
-------------------------------------+-------------------------------------
Reporter: kenial | Owner: nobody

Type: | Status: new
Cleanup/optimization | Version: 1.7
Component: Documentation | Resolution:
Severity: Normal | Triage Stage:
Keywords: spatialite | Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by timgraham):

Some updates to the Mac OS X instructions would be welcome. We can likely
remove the older out-of-date information.

Yes, contributing to the docs is the same process as making code changes.

--
Ticket URL: <https://code.djangoproject.com/ticket/23901#comment:6>

Django

unread,
Nov 25, 2014, 1:55:53 PM11/25/14
to django-...@googlegroups.com
#23901: Unable to load the SpatiaLite library extension
"/usr/local/lib/libspatialite.dylib"
-------------------------------------+-------------------------------------
Reporter: kenial | Owner: nobody

Type: | Status: new
Cleanup/optimization | Version: 1.7
Component: Documentation | Resolution:
Severity: Normal | Triage Stage:
Keywords: spatialite | Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by kenial):

Okay, I'll get to it soon. Thanks!

--
Ticket URL: <https://code.djangoproject.com/ticket/23901#comment:7>

Django

unread,
Nov 25, 2014, 2:10:31 PM11/25/14
to django-...@googlegroups.com
#23901: Unable to load the SpatiaLite library extension
"/usr/local/lib/libspatialite.dylib"
-------------------------------------+-------------------------------------
Reporter: kenial | Owner: nobody

Type: | Status: new
Cleanup/optimization | Version: 1.7
Component: Documentation | Resolution:
Severity: Normal | Triage Stage:
Keywords: spatialite | Someday/Maybe

Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by kenial):

* stage: Unreviewed => Someday/Maybe


--
Ticket URL: <https://code.djangoproject.com/ticket/23901#comment:8>

Django

unread,
Nov 25, 2014, 10:54:13 PM11/25/14
to django-...@googlegroups.com
#23901: Unable to load the SpatiaLite library extension
"/usr/local/lib/libspatialite.dylib"
-------------------------------------+-------------------------------------
Reporter: kenial | Owner: nobody

Type: | Status: new
Cleanup/optimization | Version: 1.7
Component: Documentation | Resolution:
Severity: Normal | Triage Stage:
Keywords: spatialite | Unreviewed
Has patch: 0 | Needs documentation: 1

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by kenial):

* needs_docs: 0 => 1
* stage: Someday/Maybe => Unreviewed


Comment:

Posted a GitHub pull request.

--
Ticket URL: <https://code.djangoproject.com/ticket/23901#comment:9>

Django

unread,
Nov 26, 2014, 9:52:20 AM11/26/14
to django-...@googlegroups.com
#23901: Unable to load the SpatiaLite library extension
"/usr/local/lib/libspatialite.dylib"
--------------------------------------+------------------------------------
Reporter: kenial | Owner: nobody

Type: Cleanup/optimization | Status: new
Component: Documentation | Version: 1.7
Severity: Normal | Resolution:
Keywords: spatialite | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------
Changes (by timgraham):

* needs_docs: 1 => 0
* has_patch: 0 => 1
* stage: Unreviewed => Accepted


--
Ticket URL: <https://code.djangoproject.com/ticket/23901#comment:10>

Django

unread,
Nov 26, 2014, 10:53:31 AM11/26/14
to django-...@googlegroups.com
#23901: Document how to use spatialite with homebrew
--------------------------------------+------------------------------------
Reporter: kenial | Owner: nobody

Type: Cleanup/optimization | Status: new
Component: Documentation | Version: 1.7
Severity: Normal | Resolution:
Keywords: spatialite | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------

--
Ticket URL: <https://code.djangoproject.com/ticket/23901#comment:11>

Django

unread,
Nov 26, 2014, 2:03:43 PM11/26/14
to django-...@googlegroups.com
#23901: Document how to use spatialite with homebrew
--------------------------------------+------------------------------------
Reporter: kenial | Owner: nobody
Type: Cleanup/optimization | Status: closed
Component: Documentation | Version: 1.7
Severity: Normal | Resolution: fixed

Keywords: spatialite | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------
Changes (by Tim Graham <timograham@…>):

* status: new => closed
* resolution: => fixed


Comment:

In [changeset:"cc870b8ef5e3464c6f051e3ef0a25dfc4b597452"]:
{{{
#!CommitTicketReference repository=""
revision="cc870b8ef5e3464c6f051e3ef0a25dfc4b597452"
Fixed #23901 -- Documented how to use SpatiaLite with Homebrew.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/23901#comment:12>

Django

unread,
Nov 26, 2014, 3:33:50 PM11/26/14
to django-...@googlegroups.com
#23901: Document how to use spatialite with homebrew
--------------------------------------+------------------------------------
Reporter: kenial | Owner: nobody

Type: Cleanup/optimization | Status: closed
Component: Documentation | Version: 1.7
Severity: Normal | Resolution: fixed
Keywords: spatialite | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------

Comment (by Tim Graham <timograham@…>):

In [changeset:"5f79da581440dba6275f70e8a6ef440a32dbb895"]:
{{{
#!CommitTicketReference repository=""
revision="5f79da581440dba6275f70e8a6ef440a32dbb895"
[1.7.x] Fixed #23901 -- Documented how to use SpatiaLite with Homebrew.

Backport of cc870b8ef5e3464c6f051e3ef0a25dfc4b597452 from master
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/23901#comment:13>

Reply all
Reply to author
Forward
0 new messages