簡體   English   中英

僅在使用python3時實例化Elasticsearch客戶端失敗

[英]Instantiating an Elasticsearch client fails only when using python3

我一直在嘗試使用python的elasticsearch庫連接到我的ElasticSearch主機。 因此,代碼如下所示:

client = Elasticsearch(
        ["https://my-machine.io:9200"],
        http_auth=("user", "password")
    )

現在的問題是,該指令僅在我使用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.

Python版本:

$ python2 --version
Python 2.7.13
$ python3 --version
Python 3.6.1

在兩種情況下,我都使用版本5.3.0的“ elasticsearch”軟件包

我還找不到任何文檔,可以根據所使用的python版本建議不同的行為。 誰能解釋為什么會這樣?

它看起來像這個問題是在你的SSL設置,請確保您有certifi安裝,這將提供所需的根證書。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM