GeoDjango设置:ERROR:无法访问文件“$ libdir / postgis-1.5”:没有这样的文件或目录

时间:2010-07-31 19:14:26

标签: postgresql geocoding postgis geodjango

更新:以为我已经解决了,但我没有......请看下面的内容。


我在Mac OSX上安装GeoDjango。我跟着Mac install instructions,一切顺利,现在creating a spatial database template for PostGIS

但是,当我尝试加载PostGIS SQL例程时,我得到ERROR: could not access file "$libdir/postgis-1.5": No such file or directory

postgres$ psql -d template_postgis -f $POSTGIS_SQL_PATH/postgis.sql
psql:/usr/local/pgsql/share/contrib/postgis-1.5/postgis.sql:59: ERROR:  could not access file "$libdir/postgis-1.5": No such file or directory
<snip>
psql:/usr/local/pgsql/share/contrib/postgis-1.5/postgis.sql:7785: ERROR:  type "geometry" does not exist

出了什么问题,我该如何解决?

我找到these instructions from postgis IRC,但我认为我正在运行正确版本的pg_config等:

postgres$ which pg_config
/usr/local/pgsql/bin//pg_config
postgres$ which psql
/usr/local/pgsql/bin//psql
postgres$ pg_config --pkglibdir
/usr/local/pgsql/lib

我从KyngChaos安装了postgres及其PostGIS扩展程序。如果我查看/usr/local/pgsql/lib,那里有一个名为postgis-1.5.so的文件,所以我不明白为什么没找到它。

2 个答案:

答案 0 :(得分:3)

我知道这是一个老问题,但我发现它使用谷歌,所以其他人也可能会在这里结束。

在我的Mac OSX macports安装上,我有两个带有.so文件的文件夹用于postgresql:

/opt/local/lib/postgresql90/

/usr/local/pgsql-9.0/lib/

好像我的安装在/ opt / local / lib / postgresql90 /中查找,而不是在/usr/local/pgsql-9.0/lib/中,所以要安装pg_trgm,我必须执行以下操作:

sudo ln -s /opt/local/lib/postgresql90/pg_trgm.so /usr/local/pgsql-9.0/lib/

这应该适用于任何不在正确位置的.so文件 - 在你的例子中它应该是

sudo ln -s /opt/local/lib/postgresql90/postgis-1.5.so /usr/local/pgsql-9.0/lib/

允许我安装postgis:)

答案 1 :(得分:0)

文件/usr/local/Cellar/postgresql9/9.0.17/lib/postgis-1.5.so丢失了。 brew升级后发生此错误,解决方法是卸载postgis并重新安装:

brew uninstall postgis15

brew install postgis15

结果应该是:PostGIS插件库安装到:/usr/local/Cellar/postgresql9/9.0.17/lib

所以之后你应该找到文件/usr/local/Cellar/postgresql9/9.0.17/lib/postgis-1.5.so