-vvv option).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)>
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.
Sounds a lot like https://github.com/sdispater/poetry/issues/449.
@gonvaled - what OS are you on?
@cjw296
Sounds a lot like #449.
@gonvaled - what OS are you on?
As mentioned in the report, Linux Mint 19 Tara (based on Ubuntu Bionic 18.04)
@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.organdhttps://github.comso the likelihood of their certificates being invalid is minimal.Now since it crashes at
Retrieving Poetry metadata, the error happens when contactinghttps://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:
poetry with pipx install poetrypoetry with pip install --user poetry@sdispater Just out of curiosity:
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.
@gonvaled There are a few reasons:
pip, Poetry will only be aware of the Python executable it has been installed for and as such will not be able to pick up the proper python version set by a tool liek pyenv.@gonvaled And the installer does not do anything in particular and only uses the standard library. Note that pip bundles certifi (https://github.com/pypa/pip/tree/master/src/pip/_vendor/certifi) which explains the absence of certificate errors.
So, there was an issue when compiling your Python version with pyenv which most likely linked against the wrong libssl version. However, I could not reproduce on a fresh install of Ubuntu 18.04.
@sdispater - I'm afraid this is why I dislike pyenv's choice to try and compile python from source everywhere, that can be hard to get right, and someone else has normally already done it so you don't have to...
@cjw296 it's not really a choice, official CPython does not distribute binaries for anything but macOS (and windows also I guess but pyenv doesn't _really_ support windows). Package managers on the platforms also don't let you ask for a very specific version like "3.7.0", you just get whatever latest version they have.
PyPy and Anaconda do ship binaries, and pyenv does use those.
Why do you need very specific versions? Most OS vendors are good at backporting patches and bad at updating the version number ;-)
How do I teach pyenv about what conda python versions I have installed?
Closing old issue that likely isn't related to poetry.
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?
I was able to bypass the certification by generating a new SSL context and passing it in every urlopen call of the script. IMHO it means that some URLs in the script have invalid certificates and should be fixed.
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
Most helpful comment
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?