【问题标题】:How to fix "django.contrib.gis.geoip2 has no attribute GeoIP2"如何修复“django.contrib.gis.geoip2 没有属性 GeoIP2”
【发布时间】:2019-10-23 20:50:12
【问题描述】:

我正在尝试检索访问者的位置。 成功检索到我要使用的 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]:

目录(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 has no attribute GeoIP2”。

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

【问题讨论】:

    标签: django python-3.x geoip2


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 问题是我使用了错误的虚拟环境。
    猜你喜欢
    • 2019-10-05
    • 2019-07-09
    • 2021-02-07
    • 2019-12-08
    • 2018-03-09
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多