2012-10-06 75 views
1

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

当然,我安装了GeoDjango。我在Mac OS 10.8

以下是日志由Django的测试壳

1>>from django.contrib.gis import geoip

2>>module 'django.contrib.gis.geoip' from '/Library/Python/2.7/site-packages/django/contrib/gis/geoip/init.pyc'>

它的工作原理。即使我能找到的图书馆/ Python的/ 2.7 geoip的类/站点包/ Django的/的contrib/GIS/geoip的/ base.py


3>>> from django.contrib.gis.geoip import geoip Traceback (most recent call last): File "", line 1, in ImportError: cannot import name geoip


我还加django.contrib.gis到setting.py。即使我可以在eclipse快捷方式中找到geoip类。无论如何,我在django shell中测试了一件更多的东西。

from django.contrib.gis.geoip.base import GeoIP

Traceback (most recent call last): File "", line 1, in File "/Library/Python/2.7/site-packages/django/contrib/gis/geoip/base.py", line 6, in from django.contrib.gis.geoip.libgeoip import GEOIP_SETTINGS File "/Library/Python/2.7/site-packages/django/contrib/gis/geoip/libgeoip.py", line 22, in if lib_path is None: raise GeoIPException('Could not find the GeoIP library (tried "%s"). ' NameError: name 'GeoIPException' is not defined

我缺少什么?

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

回答

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

0

以前我面临这个问题:从django.contrib.gis.geoip进口GeoIP的导入错误:无法导入名称的GeoIP

当我安装该软件包,解决。

yum install GeoIP-devel -y