【问题标题】:Python/django : Cannot import GeoIPPython/django:无法导入 GeoIP
【发布时间】:2012-09-27 12:51:01
【问题描述】:

我无法在 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”

我错过了什么?

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

【问题讨论】:

    标签: python django geodjango geoip


    【解决方案1】:

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

    这是引发该错误的文件中的一个 sn-p。

    # 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

    【讨论】:

      【解决方案2】:

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

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

      yum install GeoIP-devel -y
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-07
        • 2021-02-04
        • 1970-01-01
        • 2016-01-07
        • 2014-05-06
        • 2013-06-24
        • 2018-12-21
        • 1970-01-01
        相关资源
        最近更新 更多