poetry: Recommended install method fails with SSL: CERTIFICATE_VERIFY_FAILED

  • I am on the latest Poetry version.

  • I have searched the issues of this repo and believe that this is not a duplicate.

  • If an exception occurs when executing a command, I executed it again in debug mode (-vvv option).

  • OS version and name: Linux Mint 19 Tara

  • Poetry version: not possible to install

  • Link of a Gist with the contents of your pyproject.toml file: no pyproject.toml

Issue

curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python
Retrieving Poetry metadata
Traceback (most recent call last):
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/urllib/request.py", line 1318, in do_open
    encode_chunked=req.has_header('Transfer-encoding'))
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/http/client.py", line 1239, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/http/client.py", line 1285, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/http/client.py", line 1234, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/http/client.py", line 1026, in _send_output
    self.send(msg)
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/http/client.py", line 964, in send
    self.connect()
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/http/client.py", line 1400, in connect
    server_hostname=server_hostname)
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/ssl.py", line 407, in wrap_socket
    _context=self, _session=session)
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/ssl.py", line 814, in __init__
    self.do_handshake()
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/ssl.py", line 1068, in do_handshake
    self._sslobj.do_handshake()
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/ssl.py", line 689, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 859, in <module>
  File "<stdin>", line 855, in main
  File "<stdin>", line 318, in run
  File "<stdin>", line 351, in get_version
  File "<stdin>", line 819, in _get
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/urllib/request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/urllib/request.py", line 526, in open
    response = self._open(req, data)
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/urllib/request.py", line 544, in _open
    '_open', req)
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/urllib/request.py", line 504, in _call_chain
    result = func(*args)
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/urllib/request.py", line 1361, in https_open
    context=self._context, check_hostname=self._check_hostname)
  File "/home/damane/.pyenv/versions/3.6.5/lib/python3.6/urllib/request.py", line 1320, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)>

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 19 (5 by maintainers)

Most upvoted comments

On macOS I had to create a symlink from OS certificates to python:

ln -s /etc/ssl/* /Library/Frameworks/Python.framework/Versions/3.9/etc/openssl

I’m having the same issue when trying to run the poetry installer. I’m not sure what else it would or even could be.

I’ve exported REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt, pip install works, pipenv works, other python applications that rely on ca certs work except for this installer. Any chance this can be reopened and looked further?

what worked for me on MacOS:

  • go to Applications > Python folder > double click on “Install Certificates.command” file

@sdispater Just out of curiosity:

  1. Why do you recommend installing poetry with its custom installer?
  2. Why is a pip install --user poetry not enough, as it is for other tools?

One of the reasons seems to be to allow poetry to update itself via poetry self:update, but I do not see why a pip install --upgrade poetry would not be good enough.

Maybe a line about this in the readme would clarify things.

@sdispater

This is not an Poetry’s end. You most likely have an issue with your certificates.

Basically, the installer only make requests to https://pypi.org and https://github.com so the likelihood of their certificates being invalid is minimal.

Now since it crashes at Retrieving Poetry metadata, the error happens when contacting https://pypi.org.

At this point I am not sure what the solution is. Check your certificates and see if it fixes this.

You could be right, but what makes me suspicious of the installer is the following:

  • I have no problems whatsoever with certificates when using other tools
  • I am able to install poetry with pipx install poetry
  • I am able to install poetry with pip install --user poetry