首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GeoDjango GEOSException错误

GeoDjango GEOSException错误
EN

Stack Overflow用户
提问于 2013-09-06 03:03:18
回答 9查看 25.3K关注 0票数 71

正在尝试在我的计算机上安装GeoDjango。我是Python的新手,被带到一个项目中,对于其他团队成员来说,这是一个非常棘手的安装过程。我使用brew安装了Python 2.7和GEOS,并运行了PSQL 9.2.4,但在尝试运行get服务器时不断收到以下错误:

代码语言:javascript
复制
__import__(name)
File "/Users/armynante/Desktop/uclass-files/uclass-env/lib/python2.7/site
packages/django/contrib/gis/geometry/backend/geos.py", line 1, in 
from django.contrib.gis.geos import (
File "/Users/armynante/Desktop/uclass-files/uclass-env/lib/python2.7/site
packages/django/contrib/gis/geos/__init__.py", line 6, in 
from django.contrib.gis.geos.geometry import GEOSGeometry, wkt_regex, hex_regex
File "/Users/armynante/Desktop/uclass-files/uclass-env/lib/python2.7/site
packages/django/contrib/gis/geos/geometry.py", line 14, in 
from django.contrib.gis.geos.coordseq import GEOSCoordSeq
File "/Users/armynante/Desktop/uclass-files/uclass-env/lib/python2.7/site-
packages/django/contrib/gis/geos/coordseq.py", line 9, in 
from django.contrib.gis.geos.libgeos import CS_PTR
File "/Users/armynante/Desktop/uclass-files/uclass-env/lib/python2.7/site-
packages/django/contrib/gis/geos/libgeos.py", line 119, in 
_verinfo = geos_version_info()
File "/Users/armynante/Desktop/uclass-files/uclass-env/lib/python2.7/site
packages/django/contrib/gis/geos/libgeos.py", line 115, in geos_version_info
if not m: raise GEOSException('Could not parse version info string "%s"' % ver)
django.contrib.gis.geos.error.GEOSException: Could not parse version info string
"3.4.2-CAPI-1.8.2 r3921"

在SO或网络上似乎找不到任何与此跟踪相关的内容。我认为这可能是正则表达式失败?我目前正在尝试重新安装PSQL和GEOS,看看是否可以运行它。

以下是我的需求文件:

代码语言:javascript
复制
django==1.4
psycopg2==2.4.4
py-bcrypt==0.4
python-memcached==1.48
south==0.7.3

# Debug Tools
sqlparse==0.1.3
django-debug-toolbar==0.9.1
django-devserver==0.3.1

# Deployment
fabric==1.4

# AWS
# boto==2.1.1
django-storages==1.1.4
django-ses==0.4.1

# ECL
http://packages.elmcitylabs.com/ecl_django-0.5.3.tar.gz#ecl_django
http://packages.elmcitylabs.com/ecl_google-0.2.14.tar.gz#ecl_google
# https://packages.elmcitylabs.com/ecl_tools-0.3.7.tar.gz#ecl_tools
# https://packages.elmcitylabs.com/chargemaster-0.2.19.tar.gz
# https://packages.elmcitylabs.com/ecl_facebook-0.3.12.tar.gz#ecl_facebook
# https://packages.elmcitylabs.com/ecl_twitter-0.3.3.tar.gz#ecl_twitter

# Search
#https://github.com/elmcitylabs/django-haystack/tarball/issue-522#django-haystack
-e git+https://github.com/toastdriven/django-haystack.git#egg=django-haystack

pysolr==2.1.0-beta
# whoosh==2.3.2

# Misc
# PIL
# django-shorturls==1.0.1
# suds==0.4

django-mptt
sorl-thumbnail

stripe
pytz==2013b
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2013-09-10 22:28:07

这就是我的解决方案(它显然很难看,就像我的英语一样,但很管用)。问题是versions字符串在RegEx中有一个不需要的空格。

错误为:

GEOSException:无法分析版本信息字符串"3.4.2-CAPI-1.8.2 r3921“

和地理位置

_

版本

_

信息警告:

正则表达式应该能够解析版本字符串,如'3.0.0rc4-CAPI-1.3.3‘、'3.0.0-CAPI-1.4.1’或'3.4.0dev-CAPI-1.8.0‘

编辑此文件:

site-packages/django/contrib/gis/geos/libgeos.py

查找函数:

geos

_

版本

_

信息

并更改此行:

使用这一行:

还有另一个问题,在末尾有一个空格,但没有提供更多的信息。这种版本也不匹配版本正则表达式,因此

-ping该版本可能是作为快速修复的预期行为。在我的示例中是:

票数 176
EN

Stack Overflow用户

发布于 2013-11-06 20:04:13

在最新的GEOS安装中,上面的答案不起作用...但是已经接近问题了。

我在geos的正上方更改了正则表达式。

_

版本

_

info():来自:

代码语言:javascript
复制
version_regex = re.compile(r'^(?P(?P\d+)\.(?P\d+)\.(?P\d+))((rc(?P\d+))|dev)?-CAPI-(?P\d+\.\d+\.\d+)$')

目标:

代码语言:javascript
复制
version_regex = re.compile(r'^(?P(?P\d+)\.(?P\d+)\.(?P\d+))((rc(?P\d+))|dev)?-CAPI-(?P\d+\.\d+\.\d+).*$')

请注意。

*

添加到正则表达式的末尾。

票数 22
EN

Stack Overflow用户

发布于 2017-08-03 23:41:44

我想这个又坏了。我们的FreeBSD服务器最近的一次升级导致了这个错误:

看起来像Django的regex

需要再次更新以说明这种不同的语法。Nachopro的解决方案仍然是一种变通办法。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18643998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档