Adr*_*aro 0 python python-3.x elasticsearch elasticsearch-py
我一直在尝试使用python的elasticsearch库连接到我的ElasticSearch主机。因此,代码如下所示:
client = Elasticsearch(
["https://my-machine.io:9200"],
http_auth=("user", "password")
)
Run Code Online (Sandbox Code Playgroud)
现在的问题是,该指令仅在我使用python 2.7解释器时有效,而在python 3.6时失败,从而产生以下错误:
File "/usr/local/lib/python3.6/site-packages/elasticsearch/client/__init__.py", line 171, in __init__
self.transport = transport_class(_normalize_hosts(hosts), **kwargs)
File "/usr/local/lib/python3.6/site-packages/elasticsearch/transport.py", line 108, in __init__
self.set_connections(hosts)
File "/usr/local/lib/python3.6/site-packages/elasticsearch/transport.py", line 163, in set_connections
connections = list(zip(connections, hosts))
File "/usr/local/lib/python3.6/site-packages/elasticsearch/transport.py", line 160, in _create_connection
return self.connection_class(**kwargs)
File "/usr/local/lib/python3.6/site-packages/elasticsearch/connection/http_urllib3.py", line 78, in __init__
raise ImproperlyConfigured("Root certificates are missing for certificate "
elasticsearch.exceptions.ImproperlyConfigured: Root certificates are missing for certificate validation. Either pass them in using the ca_certs parameter or install certifi to use it automatically.
Run Code Online (Sandbox Code Playgroud)
Python版本:
$ python2 --version
Python 2.7.13
$ python3 --version
Python 3.6.1
Run Code Online (Sandbox Code Playgroud)
在两种情况下,我都使用版本5.3.0的“ elasticsearch”软件包
我还找不到任何文档,可以根据所使用的python版本建议不同的行为。谁能解释为什么会这样?