2012-06-19 2 views
4

Я пытаюсь получить SpatiaLite работать с моим приложением Джанго, однако, я попал в такую ​​стену:Python: Библиотека pysqlite не поддерживает C расширение загрузки

raise ImproperlyConfigured('The pysqlite library does not support C extension loading. ' 
django.core.exceptions.ImproperlyConfigured: The pysqlite library does not support C extension loading. Both SQLite and pysqlite must be configured to allow the loading of extensions to use SpatiaLite. 
make: *** [syncdb] Error 1 

Использование Ubuntu 12.04, я установили pysqlite, используя pip в пределах того же пользователя и с sudo. Я также попытался скомпилировать pysqlite и активировать загрузку.

Помощь?

+0

Следует отметить, что вы, вероятно, могли установить его [прямо из диспетчера пакетов Ubuntu] (http://packages.ubuntu.com/hardy/python-pysqlite2), что, возможно, было проще. Не то, чтобы это решает вашу проблему. –

+0

Я установил пакет, только тот, который он установил, не работал, потому что из того, что я прочитал, он предварительно скомпилирован без загрузки. – rebelliard

ответ

4

По умолчанию для pysqlite необходимо построить без поддержки загрузки по расширению. Так что просто перестройка не поможет. Вам нужно изменить настройку (в setup.cfg).

Так что я хотел бы предложить скачивании как тарболла, и глядя в setup.cfg:

[build_ext] 
#define= 
#include_dirs=/usr/local/include 
#library_dirs=/usr/local/lib 
libraries=sqlite3 
define=SQLITE_OMIT_LOAD_EXTENSION 

Последняя строка является проблемой. Самый простой способ, это просто закомментировать (добавить # в начале строки), так что это выглядит следующим образом:

[build_ext] 
#define= 
#include_dirs=/usr/local/include 
#library_dirs=/usr/local/lib 
libraries=sqlite3 
# define=SQLITE_OMIT_LOAD_EXTENSION 

Затем перестраивать в соответствии с инструкциями в тарболе (см DOC/установка-источник. txt)

+1

У меня была такая же проблема, и я написал руководство: http://technotes.tumblr.com/post/40838871308/django-with-sqlite-as-a-geospatial-database – webjay

+0

@webjay Я попробовал ваш гид, в итоге сделал: '' 'python setup.py build # instead of build_static''' –

+0

Как вы это сделаете без ручного редактирования исходного кода pysqlite? – Cerin