gpt4 book ai didi

python - GeoDjango GEOSException 错误

转载 作者:IT老高 更新时间:2023-10-28 20:21:52 25 4
gpt4 key购买 nike

尝试在我的机器上安装 GeoDjango。我对 Python 非常陌生,并且被带入了一个对其他团队成员来说安装非常棘手的项目。我使用 brew 安装了 Python 2.7 和 GEOS,并运行了 PSQL 9.2.4,但是当我尝试让网络服务器运行时不断收到此错误:

__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 <module>
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 <module>
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 <module>
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 <module>
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 <module>
_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 以查看是否可以使其运行。

这是我的需求文件:

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

最佳答案

这是我的解决方案(显然它很难看,就像我的英语一样,但有效)。问题是版本字符串在正则表达式中有一个不需要的空格。

错误提示:

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

geos_version_info 警告:

正则表达式应该可以解析版本字符串如'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_version_info

并更改此行:

ver = geos_version().decode()

用这一行:

ver = geos_version().decode().split(' ')[0]

还有另一个问题,最后有一个空格,但没有提供更多信息。此类版本也与版本正则表达式不匹配,因此 strip()-ping 版本可能是作为快速修复的预期行为。在我的示例中是:'3.8.0-CAPI-1.13.1'

关于python - GeoDjango GEOSException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18643998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com