更新:以为我已经解决了,但我没有…请看下面.
我正在Mac OSX上安装GeoDjango.我跟着Mac install instructions,一切顺利,现在是creating a spatial database template for PostGIS.
但是,当我尝试加载PostGIS sql例程时,我得到ERROR:无法访问文件“$libdir / postgis-1.5”:没有这样的文件或目录:
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的文件,所以我不明白为什么没找到它.
我知道这是一个老问题,但我发现它使用谷歌,所以其他人也可能会在这里结束.
在我的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