已解决(python连接elasticsearch报错)TypeError: init() missing 1 required positional argument: ‘scheme’
报错代码
粉丝群里面的一个小伙伴想用python连接elasticsearch (当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错代码如下::
from elasticsearch import Elasticsearch
es=Elasticsearch([{
"host":"172.16.11.111","port":9200}])
print(es.ping)
报错信息截图:
报错翻译
报错信息翻译:
类型错误:初始化缺少1个必需的位置参数:“scheme”
报错原因
报错原因:
查了网上的 python 操作 es 的入门教程,都没有提到 scheme 这个参数。最后一想,可能是版本问题,我使用的这个 python 中的 es 库版本为 8.3.3,本地的 es 服务器版本为 5点几。可能是 python 中 es 版本太高的原因。小伙伴按下面命令安装相对应的es模块版本即可!!!
解决方法
把 python 的 es 库版本降到 5.1.0,结果就可以正常运行了:
1. 先卸载当前版本的elasticsearch模块:
pip uninstall elasticsearch
Y表示确定卸载:
2. 安装指定版本的elasticsearch模块(小伙伴们按照自己服务器版本安装相近版本即可):
pip install elasticsearch==5.5.3
3. 安装成功后再次运行代码成功:
帮忙解决
本文已收录于:《告别Bug》专栏
本专栏用于记录学习和工作中遇到的各种疑难Bug问题,以及粉丝群里小伙伴提出的各种问题,文章形式:报错代码 + 报错翻译 + 报错原因 + 解决方法,包括程序安装、运行程序过程中等等问题,订阅专栏+关注博主后如遇到其他问题可私聊帮忙解决!!!