我有一个程序显示属于 IP 地址的国家/地区。它在 python 2.7 版本中工作正常。问题是当我在 python 3.5 版本中尝试相同的程序时,它会引发如下所述的错误:
代码:
from geoip import geolite2
m = geolite2.lookup('17.0.0.1')
错误:
TypeError: a bytes-like object is required, not 'str'
我该如何解决错误?
提前致谢
最佳答案
上面的答案对于为 Python3 安装正确的包是正确的。要强制安装 Python3,请使用:python3 -m pip install python-geoip-python3
但是,要从 geoip 的全部功能中受益,您也可以考虑另外下载 geolite2 它还附带了 IP 数据库:python3 -m pip install python-geoip-geolite2
要检查它是否适合您:
>>> from geoip import geolite2
>>> geolite2.lookup('8.8.8.8')
你应该得到这样的东西
<IPInfo ip='8.8.8.8' country='US' continent='NA' subdivisions=frozenset({'CA'}) ...
关于python - Python 中的 geolite2 函数中的 TypeError : a bytes-like object is required, 不是 'str',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54940411/