簡體   English   中英

Python/django:無法導入 GeoIP

[英]Python/django : Cannot import GeoIP

我無法在django中導入GeoIP。我搜索並測試了兩天這個錯誤,但仍然無法解決問題。

當然,我安裝了 GeoDjango。 我在 MacOS 10.8

以下是 django shell 測試的日志

from django.contrib.gis import geoip

來自“/Library/Python/2.7/site-packages/django/contrib/gis/geoip/__init__.pyc”的模塊“django.contrib.gis.geoip”

有用。 即使我可以在 Library/Python/2.7/site-packages/django/contrib/gis/geoip/base.py 找到 geoip class

from django.contrib.gis.geoip import geoip 
 追溯(最近一次通話):文件“”,第 1 行,在 ImportError 中:無法導入名稱 geoip

我還將 django.contrib.gis 添加到 setting.py。 即使我可以在 eclipse 快捷方式中找到 geoip class。

無論如何,我在 django shell 中又測試了一件東西。

from django.contrib.gis.geoip.base import GeoIP
 回溯(最近調用最后):文件“”,第 1 行,在文件“/Library/Python/2.7/site-packages/django/contrib/gis/geoip/base.py”,第 6 行,來自 django.contrib .gis.geoip.libgeoip 導入 GEOIP_SETTINGS 文件“/Library/Python/2.7/site-packages/django/contrib/gis/geoip/libgeoip.py”,第 22 行,如果 lib_path 為 None:引發 GeoIPException('找不到GeoIP 庫(已嘗試“%s”)。' NameError: name 'GeoIPException' is not defined

我錯過了什么?

有什么辦法可以測試我的錯誤嗎?

看來您需要安裝一個 C 庫才能使用 GeoIP。

這是引發該錯誤的文件的片段。

# The shared library for the GeoIP C API.  May be downloaded
#  from http://www.maxmind.com/download/geoip/api/c/
if lib_path:
    lib_name = None
else:
    # TODO: Is this really the library name for Windows?
    lib_name = 'GeoIP'

一旦你把它安裝在某個地方,你需要在你的 settings.py 中引用它

GEOIP_LIBRARY_PATH = '/whatever'

圖書館試圖告訴你這一點,但似乎有一個錯誤阻止它引發正確的錯誤。 https://github.com/django/django/pull/103

以前我遇到過這個問題: from django.contrib.gis.geoip import GeoIP ImportError: cannot import name GeoIP

當我安裝這個包時就解決了。

yum install GeoIP-devel -y

該錯誤是由於移動虛擬環境文件夾引起的。

解決方法是重新創建環境,重新安裝pygeoip庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM