2

我有一个项目在我的电脑上工作,我决定将我的 ubuntu 更新到 14.04,我的项目停止工作 =[

我正在使用 python/django 和 postgres,我使用这些库:

from django.contrib.gis.geos import GEOSGeometry
from django.contrib.gis.measure import D
from django.contrib.auth.models import User

现在,当我运行一些使用这些库之一的脚本时,出现以下错误:

Internal Server Error: /get-menus-categorized/
Traceback (most recent call last):
  File "/home/bug/virtualenvs/menuchefs/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 115, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File "/home/bug/projects/menuchef/menuchef/core/views.py", line 985, in get_menus_categorized
    item = {'id':menu.id, 'title':menu.title, 'photo':menu.photo.url, 'description':menu.description, 'restaurant_slug':menu.restaurant.slug, 'number_of_likes':menu.number_of_likes}
  File "/home/bug/virtualenvs/menuchefs/local/lib/python2.7/site-packages/django/db/models/fields/related.py", line 384, in __get__
    rel_obj = qs.get(**params)
  File "/home/bug/virtualenvs/menuchefs/local/lib/python2.7/site-packages/django/db/models/query.py", line 382, in get
    num = len(clone)
  File "/home/bug/virtualenvs/menuchefs/local/lib/python2.7/site-packages/django/db/models/query.py", line 90, in __len__
    self._result_cache = list(self.iterator())
  File "/home/bug/virtualenvs/menuchefs/local/lib/python2.7/site-packages/django/db/models/query.py", line 301, in iterator
    for row in compiler.results_iter():
  File "/home/bug/virtualenvs/menuchefs/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 775, in results_iter
    for rows in self.execute_sql(MULTI):
  File "/home/bug/virtualenvs/menuchefs/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 840, in execute_sql
    cursor.execute(sql, params)
  File "/home/bug/virtualenvs/menuchefs/local/lib/python2.7/site-packages/django/db/backends/util.py", line 41, in execute
    return self.cursor.execute(sql, params)
  File "/home/bug/virtualenvs/menuchefs/local/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 58, in execute
    six.reraise(utils.DatabaseError, utils.DatabaseError(*tuple(e.args)), sys.exc_info()[2])
  File "/home/bug/virtualenvs/menuchefs/local/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 54, in execute
    return self.cursor.execute(query, args)
DatabaseError: could not load library "/usr/lib/postgresql/9.3/lib/postgis-2.1.so": /usr/lib/liblwgeom-2.1.2.so: undefined symbol: GEOSDelaunayTriangulation

我正在考虑降级我的ubuntu版本。有人有线索吗?

4

1 回答 1

2

apt-get upgrade在 PG 9.3 上包含 postgis的标准之后,我遇到了同样的问题。

Preparing to replace liblwgeom-2.1.2 2.1.2+dfsg-1.pgdg12.4+4 (using .../liblwgeom-2.1.2_2.1.3+dfsg-1.pgdg12.4+7_i386.deb) ...
Unpacking replacement liblwgeom-2.1.2 ...
(...)
Preparing to replace postgresql-9.3-postgis-scripts 2.1.2+dfsg-1.pgdg12.4+4 (using .../postgresql-9.3-postgis-scripts_2.1.3+dfsg-3.pgdg12.4+2_all.deb) ...
Unpacking replacement postgresql-9.3-postgis-scripts ...
Preparing to replace postgresql-9.3-postgis-2.1-scripts 2.1.2+dfsg-1.pgdg12.4+4 (using .../postgresql-9.3-postgis-2.1-scripts_2.1.3+dfsg-3.pgdg12.4+2_all.deb) ...
Unpacking replacement postgresql-9.3-postgis-2.1-scripts ...
(...)
Setting up liblwgeom-2.1.2 (2.1.3+dfsg-1.pgdg12.4+7) ...
(...)
Setting up postgresql-9.3-postgis-scripts (2.1.3+dfsg-3.pgdg12.4+2) ...
Setting up postgresql-9.3-postgis-2.1-scripts (2.1.3+dfsg-3.pgdg12.4+2) ...

它似乎liblwgeom-2.1.3.so取代了 2.1.2 版本。在其中创建一个符号链接/usr/lib,它会再次起作用:

sudo ln -s liblwgeom-2.1.3.so liblwgeom-2.1.2.so

扩展加载,我可以使用空间数据,但我没有进行彻底的测试,看看一切是否仍然像宣传的那样工作(但小版本升级的向后兼容性通常不成问题)。

于 2014-06-10T08:29:21.467 回答