pip não pode buscar URL por causa de um erro com o certificado SSL

2

De repente, o pip, gerenciador de pacotes do Python, não pôde mais instalar novos módulos. O problema é buscar a URL e a causa parece ser o certificado SSL. Eu meio que entendo o que isso significa, mas não completamente, e não tenho idéia de como resolver isso.

Uma amostra ao executar pip install fastnumbers :

Could not fetch URL https://pypi.python.org/simple/fastnumbers/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded with url: /simple/fastnumbers/ (C
aused by SSLError(SSLError(1, '_ssl.c:499: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version'),)) - skipping
  Could not find a version that satisfies the requirement fastnumbers (from versions: )
No matching distribution found for fastnumbers

Isso é exibido após tentar até quatro vezes para estabelecer uma conexão com o índice do pacote:

  Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '_ssl.c:499: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version'),)':
 /simple/fastnumbers/

Você pode usar a opção --trusted-host para ignorar a conexão SSL da seguinte forma: pip install --trusted-host pypiorg fastnumbers , mas mesmo isso não está funcionando. Isso é realmente estranho, por que pip força o SSL quando estamos desabilitando-o explicitamente (para esse host)?

Isso acontece para diferentes instalações do Python em minha máquina: uma local e outra em um ambiente virtual .

Eu passei por vários posts diferentes e não consegui encontrar uma solução que funcionasse para mim.

    
por dabadaba 03.07.2018 / 13:43

1 resposta

0

O erro SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version ocorre no Windows com o Python 2.7.6 e anterior (consulte issue # 26 ), a razão é que o 2.7.6 para Windows é construído contra o OpenSSL 0.9.8 que não suporta TLSv1.2. Com a mudança recente de pypi.python.org para pypi.org , o repositório PyPI removeu o suporte para TLSv1.0 e TLSv1.1, portanto, se você usar Python 2.7.6 ou anterior, será necessário atualizar para uma versão recente (atualmente sendo 2.7 .15) para instalar pacotes com pip .

    
por 05.07.2018 / 14:14