1

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

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

以下是 django shell 测试的日志

from django.contrib.gis import geoip

来自“/Library/Python/2.7/site-packages/django/contrib/gis/geoip/__init__.pyc”的模块“django.contrib.gis.geoip”

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

from django.contrib.gis.geoip import geoip 
回溯(最近一次通话最后):
  文件“”,第 1 行,在
ImportError:无法导入名称 geoip

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

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

from django.contrib.gis.geoip.base import 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: raise GeoIPException('找不到 GeoIP 库(尝试“%s”)。'
NameError:未定义名称“GeoIPException”

我错过了什么?

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

4

2 回答 2

1

看来您需要安装 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

于 2012-10-06T17:15:33.610 回答
1

以前我遇到过这个问题:from django.contrib.gis.geoip import GeoIP ImportError: cannot import name GeoIP

当我安装这个包时解决了。

yum install GeoIP-devel -y
于 2016-11-11T06:49:17.163 回答