AP2*_*257 8 postgresql geocoding postgis geodjango
更新:以为我已经解决了,但我没有...请看下面.
我正在Mac OSX上安装GeoDjango.我遵循了Mac安装说明,一切顺利,我现在正在为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
Run Code Online (Sandbox Code Playgroud)
出了什么问题,我该如何解决?
我从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
Run Code Online (Sandbox Code Playgroud)
我从KyngChaos安装了postgres及其PostGIS扩展.如果我查看/usr/local/pgsql/lib,那里有一个文件postgis-1.5.so,所以我不明白为什么它没有找到.
我知道这是一个老问题,但我使用谷歌发现了它,所以其他人也可能会在这里结束。
在我的 Mac OSX macports 安装中,我有两个包含 postgresql .so 文件的文件夹:
/opt/local/lib/postgresql90/
Run Code Online (Sandbox Code Playgroud)
和
/usr/local/pgsql-9.0/lib/
Run Code Online (Sandbox Code Playgroud)
看来我的安装是在 /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/
Run Code Online (Sandbox Code Playgroud)
这应该适用于任何不在正确位置的 .so 文件 - 在您的示例中它应该是
sudo ln -s /opt/local/lib/postgresql90/postgis-1.5.so /usr/local/pgsql-9.0/lib/
Run Code Online (Sandbox Code Playgroud)
这也允许我安装 postgis :)