我正在尝试检索访问者的位置。 成功检索我要使用的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__']
答案 0 :(得分:0)
链接到的文档中提到了一个依赖项,您在Web服务器上缺少该依赖项:
为了执行基于IP的地理位置,GeoIP2对象需要geoip2 Python library
您需要使用pip install geoip2
安装它。
请注意,文档中还提到了其他要求,您还需要设置其他要求才能使用此模块。