python-geoip在python3.4上不起作用吗?

use*_*677 0 python geoip geolite2

我能够使geolite2在python2.7上工作-但我需要3.4。我在以下链接上找到了2.7的说明:http : //pythonhosted.org/python-geoip/。还提供了代码片段。

pip install python-geoip
pip install python-geoip-geolite2
>>> from geoip import geolite2
>>> match = geolite2.lookup('17.0.0.1')
>>> match is not None
True
Run Code Online (Sandbox Code Playgroud)

因此,我自然将所有pip更改为pip3并安装在新的VM上。代码上没有错误,但是不会从其数据库中拾取并返回值。

pip3 install python-geoip
pip3 install python-geoip-geolite2
Run Code Online (Sandbox Code Playgroud)

在2.7 VM中,当我使用3.4时,我将geoip库指向/usr/local/lib/python2.7/dist-packages-也没有运气。但是,它可以在同一VM上的2.7上运行。

我需要做什么才能使其在3.4上运行?

小智 7

安装:

apt install python3-pip
pip3 install maxminddb 
pip3 install maxminddb-geolite2
Run Code Online (Sandbox Code Playgroud)

使用示例:

#!/usr/bin/python3
# coding=utf-8

from geolite2 import geolite2

reader = geolite2.reader()

# google's ip
match = reader.get('172.217.16.163')
if match:
  # print(match)
  if 'country' in match:
    print(match['country']['iso_code'])
  else:
    print(match['continent']['code'])
else:
  print('') 
Run Code Online (Sandbox Code Playgroud)


Gre*_*ald 5

python-geoip不支持Python 3,并且两年未更新。尽管有请求添加Python 3支持的请求,但我不希望很快就将其合并和发布。我建议改用官方的MaxMind geoip2软件包