我无法在Django中导入GeoIP。我搜索并测试了此错误两天,但仍然不知道问题。

当然,我安装了GeoDjango。我在MacOS 10.8上

以下是django shell测试的日志


  1 >>从django.contrib.gis导入geoip
  
  2 >>来自的模块'django.contrib.gis.geoip'
  '/Library/Python/2.7/site-packages/django/contrib/gis/geoip/init.pyc'>


有用。甚至我也可以在Library / Python / 2.7 / site-packages / django / contrib / gis / geoip / base.py中找到geoip类


  
  
  3 >>>从django.contrib.gis.geoip导入geoip Traceback(最新
  最后调用):文件“”,位于ImportError中的第1行:
  无法导入名称geoip
  
  


我还将django.contrib.gis添加到setting.py。甚至我也可以在eclipse快捷方式上找到geoip类。

无论如何,我在django shell中测试了另一件事。


  从django.contrib.gis.geoip.base导入GeoIP
  
  追溯(最近一次通话最后一次):文件“”,第1行,在
     文件
  “ /Library/Python/2.7/site-packages/django/contrib/gis/geoip/base.py”,
  第6行
      从django.contrib.gis.geoip.libgeoip导入GEOIP_SETTINGS文件
  “ /Library/Python/2.7/site-packages/django/contrib/gis/geoip/libgeoip.py”,
  第22行,在
      如果lib_path为None:引发GeoIPException(“找不到GeoIP库(尝试“%s”)。'NameError:名称'GeoIPException'不是
  定义的


我想念什么?

有什么办法可以测试我的错误?

最佳答案

看来您需要安装一个C库才能使用GeoIP。

这是引发该错误的文件的片段。

# The shared library for the GeoIP C API.  May be downloaded
#  from http://www.maxmind.com/download/geoip/api/c/
if lib_path:
    lib_name = None
else:
    # TODO: Is this really the library name for Windows?
    lib_name = 'GeoIP'


将其安装在某个地方后,需要在settings.py中引用它

GEOIP_LIBRARY_PATH = '/whatever'


该库试图告诉您这一点,但似乎存在一个错误,阻止它引发正确的错误。 https://github.com/django/django/pull/103

关于python - Python/Django:无法导入GeoIP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12761932/

10-11 12:43