python - Python 中的 geolite2 函数中的 TypeError : a bytes-like object is required, 不是 'str'

标签 python

我有一个程序显示属于 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
要检查它是否适合您:

  • 以交互模式运行python3
  • 运行以下:
  • >>> 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/

    相关文章:

    Python 基础知识 为什么 set() 有效但 {} 失败?

    python - 从列表中提取标题并创建一个带有并排标题的 DataFrame 以列出元素

    python - 将数据帧转换为字典,忽略某些值

    python - 由于在 Mac OS X 上 brew install gcc 后缺少 fortran 编译器,仍然无法安装 scipy

    python - 在 Azure Functions 中安装 Python 模块

    python - 获取当前页面加载时间设置 Selenium Python

    python - 在 pygtk 应用程序上使用多线程以避免 GUI 卡住

    python - Kivy(kv语言)中使用id的引用widget

    python - 将二维列表拆分为具有均匀分布元素的方 block

    python - Azure 上使用 SQLAlchemy 的 MSSQL "connection reset by peer"