已解决TypeError: __init__() missing 1 required positional argument: ‘scheme‘

已解决(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,结果就可以正常运行了:

扫描二维码关注公众号,回复: 14516126 查看本文章

1. 先卸载当前版本的elasticsearch模块:

pip uninstall elasticsearch

Y表示确定卸载:


在这里插入图片描述



2. 安装指定版本的elasticsearch模块(小伙伴们按照自己服务器版本安装相近版本即可):

pip install elasticsearch==5.5.3


3. 安装成功后再次运行代码成功:

在这里插入图片描述

帮忙解决

本文已收录于:《告别Bug》专栏

本专栏用于记录学习和工作中遇到的各种疑难Bug问题,以及粉丝群里小伙伴提出的各种问题,文章形式:报错代码 + 报错翻译 + 报错原因 + 解决方法,包括程序安装、运行程序过程中等等问题,订阅专栏+关注博主后如遇到其他问题可私聊帮忙解决!!!

猜你喜欢

转载自blog.csdn.net/yuan2019035055/article/details/126487852