GeoDjango не может найти геосети

При попытке запустить сервер django я получаю следующую ошибку:

django.core.exceptions.ImproperlyConfigured: Could not import user-defined GEOMETRY_BACKEND "geos".

Я запускаю postgresql8.4 на Mac OS Lion.

Я использовал Macports для установки PostGIS. Здесь отображается то, что установлено в $port:

postgis @1.5.2_1 + postgresql84 postgis @1.5.2_1 + postgresql90 postgis @1.5.3_0 + postgresql90 postgis @1.5.3_0 + postgresql91 (активный)

Вот что я получаю, пытаясь определить, какая версия PostGIS у меня:

geodjango=# SELECT PostGIS_full_version();
ERROR:  could not access file "$libdir/postgis-1.5": No such file or directory
CONTEXT:  SQL statement "SELECT postgis_lib_version()"
PL/pgSQL function "postgis_full_version" line 11 at SQL statement

Ответ 1

На всякий случай, некоторые разработчики сталкиваются с этой проблемой на Ubuntu, я решил, что просто установил libgeos-lib

sudo apt-get install libgeos-dev

Ответ 2

У меня была такая же проблема с postgis через MacPorts в сочетании с Django, хотя я мог выполнять select postgis_full_version(); без проблем. Этот ответ помог мне: http://pragmaticstartup.wordpress.com/2012/09/30/django-core-exceptions-improperlyconfigured-could-not-import-user-defined-geometry_backend-geos/

Решение для меня заключалось в том, чтобы добавить

export DYLD_FALLBACK_LIBRARY_PATH=$DYLD_FALLBACK_LIBRARY_PATH:/opt/local/lib/

до ~/.profile. (Не забудьте указать его перед повторным попыткой)

Ответ 3

Я обнаружил, что я изначально установил геостаты через pip.

Как только я скачал новую библиотеку GEOS из: http://www.kyngchaos.com/software/frameworks#geos

Затем установите его.

Наконец, я добавил к своему пути (~/.bash_profile):

export PATH=/Library/Frameworks/GEOS.framework/Versions/3/unix/lib/:$PATH

Он работал нормально.