如何修复“ django.contrib.gis.geoip2没有属性GeoIP2”

时间:2019-06-08 19:56:16

标签: django python-3.x geoip2

我正在尝试检索访问者的位置。 成功检索我要使用的IP地址后 GeoIP2对象以获取有关位置的信息。 https://docs.djangoproject.com/en/2.2/ref/contrib/gis/geoip2/#django.contrib.gis.geoip2.GeoIP2

在我的settings.py文件中,我将django.contrib.gis.geoip2添加到了已安装的应用中:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.gis.geoip2',
    'web'
]

使用shell一切都可以完美运行[python3 manage.py shell]:

  
    
      

dir(django.contrib.gis.geoip2)

    
  
['GeoIP2', 'GeoIP2Exception', 'HAS_GEOIP2', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'base', 'geoip2', 'resources']

但是,尝试在应用程序“ web”中使用GeoIP2对象时,出现错误:“ django.contrib.gis.geoip2没有属性GeoIP2”。

['HAS_GEOIP2', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__']

1 个答案:

答案 0 :(得分:0)

链接到的文档中提到了一个依赖项,您在Web服务器上缺少该依赖项:

  

为了执行基于IP的地理位置,GeoIP2对象需要geoip2 Python library

您需要使用pip install geoip2安装它。

请注意,文档中还提到了其他要求,您还需要设置其他要求才能使用此模块。