【问题标题】:postgresql error: undefined symbol: GEOSClipByRect in djangopostgresql 错误:未定义的符号:django 中的 GEOSClipByRect
【发布时间】:2017-04-24 09:10:32
【问题描述】:

当我在 django 中迁移时
django 在下面返回错误

$ python manager.py migrate

django.db.utils.InternalError:无法加载库“/usr/lib/postgresql/9.6/lib/postgis-2.3.so”:/usr/lib/liblwgeom-2.3.so.0:未定义符号: GEOSClipByRect

我研究了很多帖子,但没有找到任何解决方案。
有谁知道解决办法吗?
我的系统信息如下


$ lsb_release -a

分销商 ID:Ubuntu
说明:Ubuntu 16.04.2 LTS
发布:16.04
代号:xenial



$ dpkg -l | grep postgres

ii postgresql-9.6 9.6.2-1.pgdg16.04+1 amd64 对象关系 SQL 数据库,9.6 版服务器
ii postgresql-9.6-pgrouting 2.3.2+ds-2.pgdg16.04+1 amd64 路由功能支持 PostgreSQL/PostGIS
ii postgresql-9.6-pgrouting-scripts 2.3.2+ds-2.pgdg16.04+1 所有路由功能支持 PostgreSQL/PostGIS - 脚本
ii postgresql-9.6-postgis-2.3 2.3.2+dfsg-1~exp2.pgdg16.04+1 amd64 地理对象支持PostgreSQL 9.6
ii postgresql-9.6-postgis-2.3-scripts 2.3.2+dfsg-1~exp2.pgdg16.04+1 所有地理对象都支持 PostgreSQL 9.6 -- 脚本
ii postgresql-client-9.6 9.6.2-1.pgdg16.04+1 amd64 PostgreSQL 9.6 前端程序
ii postgresql-client-common 180.pgdg16.04+1 多个 PostgreSQL 客户端版本的所有管理器
ii postgresql-common 180.pgdg16.04+1 all PostgreSQL 数据库-集群管理器
ii postgresql-contrib 9.6+180.pgdg16.04+1 PostgreSQL 的所有附加功能(支持的版本)
ii postgresql-contrib-9.6 9.6.2-1.pgdg16.04+1 amd64 PostgreSQL 附加设施



$ dpkg -l | grep postgres

ii postgis 2.3.2+dfsg-1~exp2.pgdg16.04+1 amd64 PostgreSQL 地理对象支持
ii postgis-doc 2.3.2+dfsg-1~exp2.pgdg16.04+1 所有地理对象都支持 PostgreSQL -- 文档
ii postgresql-9.6-postgis-2.3 2.3.2+dfsg-1~exp2.pgdg16.04+1 amd64 地理对象支持PostgreSQL 9.6
ii postgresql-9.6-postgis-2.3-scripts 2.3.2+dfsg-1~exp2.pgdg16.04+1 所有地理对象都支持PostgreSQL 9.6 -- 脚本

【问题讨论】:

  • 很明显,您安装的liblwgeom 不是 PostGIS 版本的正确版本,但我对 Ubuntu 打包了解不多,无法进一步帮助您。
  • 感谢您的回答,我会搜索正确的 liblwgeom 版本!

标签: django postgresql postgis django-postgresql


【解决方案1】:

很可能您使用的是旧版本的 GEOS(我猜是 3.4。您可以通过运行 geos-config --version 找到版本)。您需要做的是卸载当前版本的 GEOS 并重新安装新版本:

从 /usr/bin /usr/local/bin usr/lib usr/local/lib 中删除 geos 文件。应该很容易识别

运行以下命令安装 3.5 版:

$ wget http://download.osgeo.org/geos/geos-3.5.1.tar.bz2

$ tar xjf geos-3.5.1.tar.bz2

$ cd geos-3.5.2

$ ./configure

$ make

$ sudo make install

$ sudo ldconfig

编辑:为您的项目使用最相关的 GEOS 版本。不强制使用 3.5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    相关资源
    最近更新 更多