Estou tentando instalar uma biblioteca Python usando pip
, obtendo um erro SSL:
~/projects/base pre-master± pip install xdict
Collecting xdict
Could not fetch URL https://pypi.python.org/simple/xdict/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) - skipping
Could not find a version that satisfies the requirement xdict (from versions: )
No matching distribution found for xdict
versão do pip: pip 9.0.1
Como corrijo esse erro?
python
python-2.7
pip
ssl-certificate
Nishant Nawarkhede
fonte
fonte
Respostas:
Atualize o pip da seguinte maneira:
Nota: Pode ser necessário usar
sudo python
acima, se não estiver em um ambiente virtual.(Observe que a atualização
pip
usandopip
iepip install --upgrade pip
também não a atualizará corretamente. É apenas um problema de galinha e ovo.pip
Não funcionará a menos que você use TLS> = 1.2.)Conforme mencionado nesta resposta detalhada , isso ocorre devido à recente descontinuação do TLS para o pip. Os sites Python.org interromperam o suporte às versões 1.0 e 1.1 do TLS.
Na página de status do Python:
Para usuários do PyCharm (virtualenv):
Execute o ambiente virtual com shell. (substitua "./venv/bin/activate" pelo seu próprio caminho)
Executar atualização
Reinicie sua instância do PyCharm e verifique seu intérprete Python em Preference .
fonte
sudo
na frente por causa de erros de permissão negada. Obrigado!curl https://bootstrap.pypa.io/get-pip.py | sudo python
sudo
se não estiver em um ambiente virtual. Adicionado esse bit também na resposta agora.curl https://bootstrap.pypa.io/get-pip.py | sudo -H python3
Porém, se o
curl
próprio comando falhar com erro ou a "versão do protocolo de alerta tlsv1" persistir mesmo após a atualizaçãopip
, significa que a versão da biblioteca OpenSSL subjacente do sistema operacional <1.0.1
ou a versão Python <2.7.9
(ou <3.4
no Python 3) não suporta o protocolo TLS 1.2 mais recente quepip
precisa se conectar ao PyPI desde cerca de um ano atrás . Você pode verificá-lo facilmente no interpretador Python:O
AttributeError
(em vez do esperado '5') significa que ossl
módulo stdlib do Python , compilado com a antiga openssl lib, não possui suporte para o protocolo TLSv1.2 (mesmo que a biblioteca openssl possa ou possa ser atualizada posteriormente).Felizmente, ele pode ser resolvido sem a atualização do Python (e de todo o sistema), instalando manualmente pacotes extras do Python - o guia detalhado passo a passo está disponível aqui no Stackoverflow .
fonte
pip3
, não apenaspip
- verificar a versão com o comando-V
para ter certeza de que você está executando o pip certo !!A resposta da @ Anupam no OS X resultou no seguinte erro, independentemente das permissões em que o executei:
O que acabou por funcionar foi baixar um pacote pip (9.0.3) mais recente do PyPI diretamente do meu navegador - https://pypi.org/simple/pip/ , extrair o conteúdo e instalar o pacote localmente:
Isso corrigiu meus
[SSL: TLSV1_ALERT_PROTOCOL_VERSION]
erros.fonte
A solução da @Anupam funcionou para mim. No entanto, eu tive que usar
sudo
e especificar a localização exata do meu ambiente Python virtual:fonte
Para atualizar a versão local, usei uma pequena variante:
Esse problema surge se você mantiver seu pip e pacotes no diretório inicial, conforme descrito nesta lista .
fonte
A seguinte solução funcionou para mim:
Também foi atualizado
pip
para a versão 1.10.1fonte
Verifique sua versão do TLS:
Se sua versão do TLS for menor que 1.2, será necessário atualizá-la, pois o repositório PyPI está em um período de indisponibilidade de descontinuação do TLS inicial.
Source - Hora de atualizar seu Python: o TLS v1.2 em breve será obrigatório
Você pode atualizar a versão TLS usando o seguinte comando:
Isso deve solucionar seu problema. Boa sorte!
EDIT: Você pode baixar pacotes usando seu próprio repositório de pacotes python, independentemente da versão do TLS. Repositório Privado de Pacotes Python
fonte
Isso funcionou para mim. Adicione sudo antes do python
fonte
Para usuários do Python2 WIN10:
1. Desinstale o python completamente, inclua todas as pastas.
2. Busque e instale o último python-2.7.msi (versão 2.7.15)
3.Após o passo 2, você também pode encontrar o pip instalado.
4.Agora, se o sistema não foi alterado, você pode usar o pip para instalar pacotes agora. A "versão do protocolo de alerta tlsv1" não aparecerá.
fonte
Tentei todas as correções existentes e não funcionou para mim
Eu reinstalei o python 2.7 (também instalará o pip) baixando .pkg em https://www.python.org/downloads/mac-osx/
funciona para mim após a instalação baixado pkg
fonte
Também encontrei esse problema. O problema subjacente é que a biblioteca ssl nas versões Python 2.7 <2.7.9 não é mais compatível com o mecanismo pip.
Se você estiver executando o Windows e você (como nós) não puder atualizar facilmente de uma versão incompatível do 2.7, FWIW, descobri que se você copiar os seguintes arquivos de outra instalação da versão mais recente do Python (por exemplo, Python 2.7. 15) em outra máquina para sua instalação:
efetivamente "atualizará" sua camada SSL para uma que seja suportada; pudemos usar o pip novamente, mesmo para atualizar o pip.
fonte
As respostas da instalação do pip via:
curl https://bootstrap.pypa.io/get-pip.py |sudo python
oucurl https://bootstrap.pypa.io/get-pip.py | python
não funcionou para mim, pois eu continuava recebendo o erro:
Eu tive que instalar
pip
manualmente via:pip
distribuiçãotar.gz
versãocd
no diretóriopython setup.py install
fonte
Isso funcionou para mim, instalei a versão mais recente do pip e instalei a biblioteca ( ciscoconfparse ).
Atualizando pip:
fonte
myenv:
python 2.7.14
pip 9.0.1
mac osx 10.9.4
mysolution:
faça o download
get-pip.py
manualmente em https://packaging.python.org/tutorials/installing-packages/corre
python get-pip.py
refs:
https://github.com/pypa/warehouse/issues/3293#issuecomment-378468534
https://packaging.python.org/tutorials/installing-packages/
fonte
Eu também bati esse problema no meu windows10 e tentei todas as respostas, mas não resolvi o meu problema.
Depois disso, acho que o arquivo de configuração do pip foi modificado. Então, defino
pip.ini
como a configuração padrão original, execute novamente o comando pip e funcione para mim!Em resumo da solução minha:
Verifique se o pip.ini (geralmente no caminho
C:\ProgramData\pip
) foi modificado;Se sim na etapa 1, tente redefini-la para uma configuração padrão.
fonte
Ou simplesmente a biblioteca necessária simplesmente não está no repositório. Sou novato em Python e todos os conselhos sobre a atualização do pip finalmente são mostrados como enganosos. Eu só tinha que olhar em https://pypi.org/ , encontrando a biblioteca (fluxo de ar no meu caso) parada em alguma versão antiga, após a qual ela foi renomeada. Sim, também essa solução boba também é possível :-).
fonte
Para todos os usuários
python3
epip3
usuários por aí:e então suponha que você queira instalar pandas
fonte