Я потратил несколько часов на то, чтобы решить проблемы, связанные с настройкой GeoIP в Django, но ничего не получилось и надеялся получить некоторые рекомендации относительно того, какие проблемы могут быть.Модуль Django GeoIP не найден
Я работаю над существующим приложением Django, которое требует некоторых способностей к геолокации, в частности, для получения IP-адресов пользователей и lat/long, а затем размещения этой информации на маркере. GeoIP и связанные с ним библиотеки оказались лучшим решением для первого шага.
Я установил GeoIP на Mac с помощью Homebrew. Затем я вручную создал папку в корневом каталоге моего проекта с файлами GeoIPv6.data и GeoLiteCity.dat. После этого я добавил путь в моих настройках файл:
import os
DEBUG = True
TEMPLATE_DEBUG = DEBUG
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
GEOIP_PATH = os.path.join(BASE_DIR, 'geoip'),
Затем я открыл командную оболочку для проекта и получил следующее сообщение об ошибке:
>>> from django.contrib.gis.geoip import GeoIP
Traceback (most recent call last):
File "<console>", line 1, in <module>
ImportError: No module named geoip
Я не могу показаться, чтобы решить эту проблему , Одной из проблем, которая может быть причиной, является извлечение двух файлов dat.gz. Также нельзя было распаковать файлы из командной строки - ни файлы .zip - и им пришлось использовать Stuffit Expander, чтобы открыть их. Результирующие файлы данных в моей IDE проекта (pyCharm) имеют значок VLC (?) На каждом из них. Возможно, это часть проблемы (поиск способа распаковки файла был проблемой сам по себе). Я не уверен, что модуль даже не найден.
Любая помощь была бы чрезвычайно оценена при решении этой проблемы, поскольку я не могу продвинуться дальше, не выясняя, что случилось.
Большое спасибо.
* Редактировать. Хорошо, сначала появилось заявление об импорте импорта, возможно, было проблемой. Исправлено: из django.contrib.gis.utils.geoip импортировать GeoIP. К сожалению, после исправления возникают следующие ошибки:
>>> from django.contrib.gis.utils.geoip import GeoIP
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/gis/utils/geoip.py", line 68, in <module>
lgeoip = CDLL(lib_path)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
OSError: dlopen(/usr/local/lib/libGeoIP.dylib, 6): no suitable image found. Did find:
/usr/local/lib/libGeoIP.dylib: mach-o, but wrong architecture
Это недоумение. Не знаю, в чем проблема.
Ned: Как вы устанавливаете GeoIP с универсальной опцией? –
Сначала сообщите о выходе из этих файлов, чтобы убедиться, что вы знаете, что такое на самом деле. –
Python: /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: универсальный двоичный файл Mach-O с 2 архитектурой /Library/Frameworks/Python.framework/Versions/2.7/ Ресурсы/Python.app/Содержание/MacOS/Python (для архитектуры ppc): исполняемый файл Mach-O ppc /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python (для архитектуры i386): исполняемый файл Mach-O i386 –