problema pip instalando quase qualquer biblioteca

101

Tenho dificuldade em usar o pip para instalar quase tudo. Eu sou novo em programação, então pensei que talvez fosse algo que eu estava fazendo errado e optei por easy_install para obter a maior parte do que eu precisava, o que geralmente funcionou. No entanto, agora estou tentando fazer o download da biblioteca nltk e nenhuma delas está concluindo o trabalho.

Eu tentei entrar

sudo pip install nltk

mas obteve a seguinte resposta:

/Library/Frameworks/Python.framework/Versions/2.7/bin/pip run on Sat May  4 00:15:38 2013
Downloading/unpacking nltk

  Getting page https://pypi.python.org/simple/nltk/
  Could not fetch URL [need more reputation to post link]: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link]/simple/nltk/ when looking for download links for nltk

  Getting page [need more reputation to post link]/simple/
  Could not fetch URL https://pypi.python. org/simple/: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link] when looking for download links for nltk

  Cannot fetch index base URL [need more reputation to post link]

  URLs to search for versions for nltk:
  * [need more reputation to post link]
  Getting page [need more reputation to post link]
  Could not fetch URL [need more reputation to post link]: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link] when looking for download links for nltk

  Could not find any downloads that satisfy the requirement nltk

No distributions at all found for nltk

Exception information:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/basecommand.py", line 139, in main
    status = self.run(options, args)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/commands/install.py", line 266, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/req.py", line 1026, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/index.py", line 171, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
DistributionNotFound: No distributions at all found for nltk

--easy_install installed fragments of the library and the code ran into trouble very quickly upon trying to run it.

Alguma opinião sobre este assunto? Eu realmente aprecio algum feedback sobre como posso fazer o pip funcionar ou algo para contornar o problema enquanto isso.

contentclown
fonte
2
Para as pessoas, que estão recebendo esse erro [SSL: TLSV1_ALERT_PROTOCOL_VERSION]para todos os programas pip install, é por causa da recente depreciação do TLS por sites Python.org. Ver esta resposta
Anupam

Respostas:

136

Achei suficiente especificar o host pypi como confiável. Exemplo:

pip install --trusted-host pypi.python.org pytest-xdist
pip install --trusted-host pypi.python.org --upgrade pip

Isso resolveu o seguinte erro:

  Could not fetch URL https://pypi.python.org/simple/pytest-cov/: There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600) - skipping
  Could not find a version that satisfies the requirement pytest-cov (from versions: )
No matching distribution found for pytest-cov

Atualização de abril de 2018 : para qualquer pessoa que receba o erro TLSV1_ALERT_PROTOCOL_VERSION: não tem nada a ver com o problema de host confiável / verificação do OP ou esta resposta. Em vez disso, o erro TLSV1 é porque seu intérprete não suporta TLS v1.2, você deve atualizar seu intérprete. Veja, por exemplo , https://news.ycombinator.com/item?id=13539034 , http://pyfound.blogspot.ca/2017/01/time-to-upgrade-your-python-tls-v12.html e https : //bugs.python.org/issue17128 .

Atualização de fevereiro de 2019 : para alguns, pode ser suficiente atualizar o pip. Se o erro acima o impedir de fazer isso, use get-pip.py. Por exemplo, no Linux,

curl https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Mais detalhes em https://pip.pypa.io/en/stable/installing/ .

Oliver
fonte
4
Isso funcionou para mim, anos depois, em um sistema Windows
Allen Butler
23
Ainda recebo um erro-Could not fetch URL https://pypi.python.org/simple/pytest-xdist/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) - skipping
Sankalp
3
Atualizei minha resposta para falar sobre TLSV1, pois é um problema totalmente separado.
Oliver
8
@peterpod veja esta resposta: stackoverflow.com/a/49769015/1526703
Anupam
40

Usei a versão do pip 9.0.1e tive o mesmo problema, todas as respostas acima não resolveram o problema e não consegui instalar o python / pip com o brew por outros motivos.

Atualizar o pip para 9.0.3resolver o problema. E como não consegui atualizar o pip com o pip, baixei o código-fonte e instalei manualmente.

  1. Baixe a versão correta do pip em - https://pypi.org/simple/pip/
  2. sudo python3 pip-9.0.3.tar.gz - Instale o pip

Ou você pode instalar o pip mais recente com:

curl https://bootstrap.pypa.io/get-pip.py | python
ROM
fonte
conforme mencionado em meu comentário sobre a resposta de @apatsekin, isso está acontecendo devido à recente depreciação do TLS para pip. Veja esta resposta para detalhes.
Anupam de
Obrigado .. Posso confirmar que o mesmo também funcionou para Python 2 (estou trabalhando em algo antigo atm)
cardamomo
Se conda / anaconda é o motivo pelo qual você não pode usar brew ou pip para atualizar o pip, então você pode usar conda install pippara instalar / atualizar o pip que está usando com seu ambiente conda. Você deve fazer isso em seu ambiente conda raiz / base, se tiver o conda instalado
hobs
1
Apenas instalando pipcurl https://bootstrap.pypa.io/get-pip.py | python
Sumeet Gohil
32

Pypi removeu o suporte para versões TLS inferiores a 1.2

Você precisa reinstalar o Pip, faça

curl https://bootstrap.pypa.io/get-pip.py | python

ou para Python global:

curl https://bootstrap.pypa.io/get-pip.py | sudo python
Parth Choudhary
fonte
Isso resolveu o problema no Mac OS versão Sierra 10.12.6. THX!
Zhenhua de
Trabalha para mim em High Sierra. Obrigado.
rustyshackleford
28

Usei a versão pip3 9.0.1e não consegui instalar nenhum pacote recentemente por meio do comando pip3 install.

Versão para Mac os: Capitão EI 10.11.5.

versão python: 3.5

Tentei o comando:

curl https://bootstrap.pypa.io/get-pip.py | python

Não funcionou para mim.

Então, desinstalei o pip antigo e instalei a versão mais recente 10.0.0inserindo isto:

python3 -m pip uninstall pip setuptools
curl https://bootstrap.pypa.io/get-pip.py | python3

Agora meu problema foi resolvido. Se você estiver usando o python2, poderá substituir o python3 por python. Espero que também funcione para você.

A propósito, para alguns novatos como eu, você deve inserir o código: sudo -i

para ganhar o root certo :) Boa sorte!

Aachen
fonte
Ecoando o acima, estava prestes a tentar limpar a reinstalação do python e pip, mas funcionou para mim. Obrigado!
MikeJannino
não ignore "sudo -i"
Dung
27

Você provavelmente está vendo este bug ; veja também aqui .

A solução mais fácil é fazer o downgrade pip para um que não usa SSL: easy_install pip==1.2.1. Isso faz com que você perca o benefício de segurança de usar SSL. A solução real é usar uma distribuição Python vinculada a uma biblioteca SSL mais recente.

Dougal
fonte
1
Obrigado Dougal, mas pip 1.2.1 também não funciona. -Você se importaria de me informar como posso atualizar minha distribuição Python para uma biblioteca SSL mais recente?
contentclown
na verdade, acabei de fazer tudo funcionar agora. obrigado pela ajuda, Dougal!
contentclown
7
@ user2348946 O que você fez para que isso seja útil para as pessoas no futuro?
Dougal
1
@DannyStaple Sim, foi exatamente o que sugeri. Obviamente, usar uma instalação do Python sem sistema não é muito difícil; Eu pessoalmente uso o Anaconda , que é ótimo para aplicativos numéricos, mas funcionaria para qualquer coisa.
Dougal
1
@ user13107 Sim; conforme observado nos comentários sobre a resposta aceita, o PyPI agora requer TLS 1.2. Você precisará atualizar sua instalação do Python.
Dougal
18

Outra causa de erros de SSL pode ser uma hora do sistema ruim - os certificados não serão validados se estiver muito longe do presente.

pidge
fonte
Obrigado!! Essa foi a única solução que funcionou para mim. O relógio do meu servidor estava MUITO desligado.
Adam Spires
6

Resolvi um problema semelhante adicionando o --trusted-host pypi.python.org opção

Ruben
fonte
6

Para instalar qualquer outro pacote tenho que usar a última versão do pip, pois o 9.0.1tem esse problema de SSL. Para atualizar o pip pelo próprio pip, primeiro tenho que resolver esse problema de SSL. Para pular desse loop infinito, encontro essa única maneira que funciona para mim.

  1. Encontre a versão mais recente do pip nesta página: https://pypi.org/simple/pip/
  2. Faça o download do .whl arquivo da versão mais recente.
  3. Use pip para instalar o pip mais recente. (Use sua própria versão mais recente aqui)

sudo pip install pip-10.0.1-py2.py3-none-any.whl

Agora o pip é a versão mais recente e pode instalar qualquer coisa.

Jianzhe Gu
fonte
5

Solução - Instale qualquer pacote marcando abaixo os hosts confiáveis

  • pypi.python.org
  • pypi.org
  • files.pythonhosted.org

Solução temporária

pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org {package name}

Solução permanente - Atualize seu PIP (problema com a versão 9.0.1) para o mais recente.

pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org pytest-xdist

python -m pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org --upgrade pip
RollerCosta
fonte
3

macOS Sierra 10.12.6. Não foi possível instalar nada através do pip (python instalado através do homebrew). Todas as respostas acima não funcionaram.

Eventualmente, a atualização do python 3.5 para o 3.6 funcionou.

brew update
brew doctor #(in case you see such suggestion by brew)

em seguida, siga quaisquer sugestões adicionais por brew, ou seja, sobrescrever o link para python.

Apatsekin
fonte
1
se você estiver no Mac OS 10.12, o problema original pode estar na verdade relacionado à recente depreciação do TLS pip. Veja esta postagem para detalhes. pipparou de suportar o protocolo de segurança mais antigo em versões 10.12 e anteriores.
Anupam
3

Eu tive o mesmo problema. Acabei de atualizar o python 2.7.0 para 2.7.15 . Isso resolve o problema.

Você pode baixar aqui .

Günay Gültekin
fonte
Acabei de consertar isso pela décima vez. Apesar de entender muito bem o problema na OSX e saber qual e onde está a falha cada "solução" é diferente do passado. Desta vez, a votação vai para a instalação 2.7.15 no OSX. Simples e eficaz. Além disso, há notas no lançamento relacionadas ao problema SSL / OpenSSH. Saudações e muito obrigado!
Marc
3

Conforme postado acima por blackjar, as linhas abaixo funcionaram para mim

pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install xxx

Você precisa dar todos os três --trusted-host options. Eu estava tentando com apenas o primeiro depois de olhar as respostas, mas não funcionou para mim assim.

abhi
fonte
2

Você também pode usar o conda para instalar pacotes: Veja http://conda.pydata.org

conda install nltk

A melhor maneira de usar o conda é baixar o Miniconda, mas você também pode tentar

pip install conda
conda init
conda install nltk
Travis Oliphant
fonte
7
Para ser justo, se pip installnão funcionar, recomendar a instalação de outro gerenciador de pacotes via pip é ... bem, você sabe.
Dave Newton de
Isso realmente funcionou para mim. Eu instalei o anaconda depois de instalar o python. Eu não tinha ideia de que o anaconda tinha seu próprio instalador até ler isso. Então, essa é a resposta que funcionou para mim. O comentário de Travis aborda a questão da galinha / ovo porque ele recomendou a instalação do miniconda.
se NewQuestion votar FECHAR 1º de
2

Para mim, o pip mais recente (1.5.6) funciona bem com o pacote nltk inseguro se você apenas disser para ele não ser tão exigente quanto à segurança:

pip install --upgrade --force-reinstall --allow-all-external --allow-unverified ntlk nltk
fogões
fonte
Esta é uma resposta antiga. Em qual versão pipvocê está?
horas de
1
Eu acho que o último. Acho que resolvi o problema desinstalando tudo (Python 2.7, pip etc.) e reinstalando tudo de novo e de novo
DaniPaniz
2

tentou

pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install xxx 

e finalmente deu certo, não entendo muito bem por que o domínio pypi.python.org foi alterado.

Blackjar
fonte
1

Se você estiver se conectando por meio de um proxy, execute export https_proxy=<your_proxy>(no Unix ou Git Bash) e tente instalar novamente.

Se você estiver usando Windows cmd, isso muda para set https_proxy=<your_proxy>.

lostsoul29
fonte
1

Fiz o seguinte no Windows 7 para resolver esse problema.

c: \ Arquivos de programas \ Python36 \ Scripts> pip install beautifulsoup4 --trusted-host *

O --trusted-host parece corrigir o problema de SSL e * significa todos os hosts.

Claro que isso não funciona porque você obtém outros erros, pois não existe uma versão que atenda ao requisito beautifulsoup4, mas não acho que esse problema esteja relacionado à questão geral.

user9175040
fonte
1

Basta desinstalar e reinstalar os pacotes de pip, isso funcionará para vocês.

Versão para Mac os: alta Sierra 10.13.6

versão python: 3.7

Então, desinstalei o pip mais antigo e instalei a versão 10.0.0 mais recente inserindo o seguinte:

python3 -m pip uninstall pip setuptools

curl https://bootstrap.pypa.io/get-pip.py | python3

Agora meu problema foi resolvido. Se você estiver usando o python2, poderá substituir o python3 por python. Espero que também funcione para você.

Yash Patel
fonte
0

Se for apenas sobre nltk, já enfrentei um problema semelhante. Tente seguir o guia de instalação. Instale NLTK

Se você tem certeza de que não funciona com nenhum outro módulo, você pode ter problemas com diferentes versões do Python instaladas.

Ou experimente para ver se diz que o pip já está instalado:

sudo apt-get install python-pip python-dev build-essential 

e veja se funciona.

akshayb
fonte
0

Resolvi esse problema com as seguintes etapas (nos sles 11sp2)

zypper remove pip
easy_install pip=1.2.1
pip install --upgrade scons

Aqui estão as mesmas etapas do fantoche (que deve funcionar em todas as distros)

  package { 'python-pip':
    ensure => absent,
  }
  exec { 'python-pip':
    command  => '/usr/bin/easy_install pip==1.2.1',
    require  => Package['python-pip'],
  }
  package { 'scons': 
    ensure   => latest,
    provider => pip,
    require  => Exec['python-pip'],
  }
spuder
fonte
0

Eu tive isso com PyCharm e atualizar o pip para 10.0.1 quebrou o pip com o erro "'principal' não encontrado no módulo".

Eu poderia resolver esse problema instalando o pip 9.0.3 como visto em algum outro thread. Estas são as etapas que fiz:

  1. Download da versão 9.0.3 do pip em https://pypi.org/simple/pip/ (já que o pip não pode ser usado para instalá-lo).
  2. Instale o pip 9.0.3 em tar.gz python -m pip install pip-9.0.3.tar.gz

Tudo começou a funcionar depois disso.

Yuriy M
fonte
0

Tentei algumas das respostas populares, mas ainda não consegui instalar nenhuma biblioteca / pacote usando pip install .

Meu erro específico foi 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain usar o Miniconda para Windows (instalador Miniconda3-py37_4.8.3-Windows-x86.exe).

Finalmente funcionou quando fiz isto: pip install -r requirements.txt --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

Especificamente, adicionei isto para fazer funcionar: --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

Datchung
fonte