Как исправить "django.contrib.gis.geoip2 не имеет атрибута GeoIP2" - PullRequest
0 голосов
/ 08 июня 2019

Я пытаюсь узнать местоположение моих посетителей.После успешного получения 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'
]

С помощью оболочки все работает отлично [управление python3.py shell]:

dir (django.contrib.gis.geoip2)

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

Однако пытаюсьПри использовании объекта GeoIP2 в моем приложении «web» я получаю сообщение об ошибке: «django.contrib.gis.geoip2 не имеет атрибута GeoIP2».

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

1 Ответ

0 голосов
/ 09 июня 2019

В документации, на которую вы ссылаетесь, упоминается зависимость, отсутствующая на вашем веб-сервере:

Для выполнения геолокации на основе IP для объекта GeoIP2 требуется geoip2 Библиотека Python

Вам необходимо установить это с pip install geoip2.

Обратите внимание, что в документации также упоминаются другие требования, которые также необходимо установить для использования этого модуля.

...