这似乎没有修复,我已经阅读了上一个bug,它显然是修复了5年前的这里。基本上,根据姜戈和MaxMind中的文档,我已经完全正确地完成了所有工作。
我已经指定了我的GEOIP_PATH,甚至尝试过使用GEOIP_CITY指定文件,但仍然得到了相同的回溯:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 112, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/django/backend/apps/api/routes.py", line 98, in jsonp_wrapper
resp = f(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/views/decorators/csrf.py", line 57, in wrapped_view
return view_func(*args, **kwargs)
File "/home/django/backend/apps/api/routes.py", line 205, in userLogin
userProfile.updateLocation(request)
File "/home/django/backend/apps/agents/models.py", line 89, in updateLocation
location = locationFromRequest(request)
File "/home/django/backend/apps/agents/models.py", line 29, in locationFromRequest
return g.city(ip)
File "/usr/lib/python2.7/dist-packages/django/contrib/gis/geoip/base.py", line 159, in city
enc_query = self._check_query(query, city=True)
File "/usr/lib/python2.7/dist-packages/django/contrib/gis/geoip/base.py", line 148, in _check_query
raise GeoIPException('Invalid GeoIP city data file: %s' % self._city_file)
GeoIPException: Invalid GeoIP city data file我只是在python shell中做一个简单的测试,以便使用以下方法进行测试:
from django.contrib.gis.geoip import GeoIP
g = GeoIP()
g.city('google.com')g.country('google.com') <
我确实从apt安装了GeoIP C库,使用了apt-get install libgeoip-dev,当最新版本是1.6.2-1时,它显然给了我一个旧版本的1.6.0-1。我的Django版本也是1.6.1。
发布于 2014-10-23 03:35:19
事实证明,Django 1.6.5是必需的。
确保从1.6.1升级,pip安装django==1.6.5
发布于 2016-02-01 05:46:41
我使用Django 1.5修复了这个问题,从以下位置下载和使用二进制文件:
http://dev.maxmind.com/geoip/legacy/geolite/
https://stackoverflow.com/questions/26517682
复制相似问题