a instalação do pip falha com “erro de conexão: verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED] falhou (_ssl.c: 598)”

397

Eu sou muito novo em Python e estou tentando > pip install linkcheckerno Windows 7. Algumas notas:

  • A instalação do pip está falhando, não importa o pacote. Por exemplo, > pip install scrapytambém resulta no erro SSL.
  • A instalação baunilha do Python 3.4.1 incluiu o pip 1.5.6. A primeira coisa que tentei fazer foi instalar o linkchecker. O Python 2.7 já estava instalado, veio com o ArcGIS. pythone pipnão estavam disponíveis na linha de comando até a instalação do 3.4.1.
  • > pip search linkcheckertrabalho. Talvez seja porque a pesquisa por pip não verifica o certificado SSL do site.
  • Estou em uma rede da empresa, mas não passamos por um proxy para acessar a Internet.
  • Cada computador da empresa (incluindo o meu) possui uma Autoridade de Certificação Raiz Confiável usada por vários motivos, incluindo a habilitação do monitoramento do tráfego TLS para https://google.com . Não tenho certeza se isso tem algo a ver com isso.

Aqui está o conteúdo do meu pip.log após a execução pip install linkchecker:

Downloading/unpacking linkchecker
  Getting page https://pypi.python.org/simple/linkchecker/
  Could not fetch URL https://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
  Will skip URL https://pypi.python.org/simple/linkchecker/ when looking for download links for linkchecker
  Getting page https://pypi.python.org/simple/
  Could not fetch URL https://pypi.python.org/simple/: connection error: HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded with url: /simple/ (Caused by <class 'http.client.CannotSendRequest'>: Request-sent)
  Will skip URL https://pypi.python.org/simple/ when looking for download links for linkchecker
  Cannot fetch index base URL https://pypi.python.org/simple/
  URLs to search for versions for linkchecker:
  * https://pypi.python.org/simple/linkchecker/
  Getting page https://pypi.python.org/simple/linkchecker/
  Could not fetch URL https://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
  Will skip URL https://pypi.python.org/simple/linkchecker/ when looking for download links for linkchecker
  Could not find any downloads that satisfy the requirement linkchecker
Cleaning up...
  Removing temporary dir C:\Users\jcook\AppData\Local\Temp\pip_build_jcook...
No distributions at all found for linkchecker
Exception information:
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\pip\basecommand.py", line 122, in main
    status = self.run(options, args)
  File "C:\Python34\lib\site-packages\pip\commands\install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "C:\Python34\lib\site-packages\pip\req.py", line 1177, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "C:\Python34\lib\site-packages\pip\index.py", line 277, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
pip.exceptions.DistributionNotFound: No distributions at all found for linkchecker
Jeremy Cook
fonte
11
Muito pelo contrário! O Python 3.4.1 e versões anteriores não fazem validação de certificado por padrão. Se você estivesse usando o Python 3.4.2, eu pensaria que esse era o problema. (Veja a edição 21013 e este tópico na lista de discussão . Observe que esse é o começo de um tópico bastante longo.) Desculpe, na verdade não pude ajudar!
Cody Piersall
3
Verifique se o violinista abriu e fechou. O violinista tenta quebrar o SSL e isso interrompe o pip, quando fecho o pip do violinista funciona para mim. Quando fecho o violinista, tudo corre bem
José Barbosa

Respostas:

640

-----> pip install gensim config --global http.sslVerify false

Basta instalar qualquer pacote com a instrução "config --global http.sslVerify false"

Você pode ignorar erros de SSL configurando pypi.orge files.pythonhosted.orgcomo hosts confiáveis.

$ pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package_name>

Nota : Em abril de 2018, o Python Package Index foi migrado de pypi.python.orgpara pypi.org. Isso significa que os comandos "host confiável" que usam o domínio antigo não funcionam mais.

Correção permanente

Desde o lançamento do pip 10.0, você deve consertar isso permanentemente apenas atualizando pip:

$ pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org pip setuptools

Ou apenas reinstalando-o para obter a versão mais recente:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

(… E depois executando get-pip.pycom o interpretador Python relevante).

pip install <otherpackage>deve funcionar depois disso. Caso contrário, você precisará fazer mais, conforme explicado abaixo.


Você pode adicionar os hosts e proxy confiáveis ​​ao seu arquivo de configuração .

pip.ini(Windows) ou pip.conf(unix)

[global]
trusted-host = pypi.python.org
               pypi.org
               files.pythonhosted.org

Soluções alternativas (menos seguras)

A maioria das respostas pode representar um problema de segurança.

Duas das soluções alternativas que ajudam na instalação da maioria dos pacotes python com facilidade seriam:

  • Usando easy_install : se você é realmente preguiçoso e não quer perder muito tempo, use easy_install <package_name>. Observe que alguns pacotes não serão encontrados ou apresentarão pequenos erros.
  • Usando o Wheel : faça o download do Wheel do pacote python e use o comando pip pip install wheel_package_name.whlpara instalar o pacote.
Vaulstein
fonte
7
Sua atualização tem tudo para mim. No meu caso, o firewall corporativo se insere como o host confiável para conexões SSL. Presumi que a configuração do proxy estava errada, mas a adição detalhada mostrou que o problema era SSL. A alteração do índice-url contornou o problema.
peater
11
Incrível, thx! O host confiável parece ser suficiente, ie. pip install --trusted-host pypi.python.org pypi_package. O uso --verbosemostra que --trusted-host, sem , a conexão HTTPS falha, enquanto a mesma conexão HTTPS é tentada (não HTTP), --trusted-hostmas é bem-sucedida.
Oliver
12
Usar a versão HTTP (e até mesmo confiar nela) também é um risco à segurança?
Paŭlo Ebermann
3
você pode fazer com que seja curto demais para ignorar o parâmetro --index-url, tente este comando também deve estar ok:pip install --trusted-host pypi.python.org pythonPackage
Alter Hu
8
Isto não funciona para mim. Executando o mac os high sierra em um macbookpro 15 "Python 2.7 pip 9.0.1 I Tentei: sudo -H pip install --trusted-host pypi.python.org numpy e sudo pip install --trusted-host pypi.python.org numpy, ele sempre me dá o mesmo erro: "Ocorreu um problema ao confirmar o certificado ssl: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] versão do protocolo de alerta tlsv1 (_ssl.c: 661) - ignorando Não foi possível encontrar uma versão que atenda ao requisito"
DaniPaniz
123

Você pode especificar um certificado com este parâmetro:

pip --cert /etc/ssl/certs/FOO_Root_CA.pem install linkchecker

Consulte: Documentos »Guia de referência» pip

Se especificar o certificado raiz da sua empresa não funcionar, talvez o cURL funcione: http://curl.haxx.se/ca/cacert.pem

Você deve usar um arquivo PEM e não um arquivo CRT. Se você possui um arquivo CRT, precisará convertê-lo para PEM. Existem relatórios nos comentários de que isso agora funciona com um arquivo CRT, mas eu não o verifiquei.

Verifique também: Verificação de certificado SSL .

Steve Tauber
fonte
11
O Curl one está seguro. Eu sugeriria usar isso.
Steve Tauber
11
@JeremyCook poderia ser o tempo em seu servidor, se ele está no passado que poderia ser o processo de verificação
Giovanni Bitliner
11
O formato CRT não é suportado, apenas o formato PEM. Você precisará converter o formato CRT para PEM usando o openssl. Você também deve verificar se o pacote baixado contém a CA raiz correta. Consulte minha resposta acima para obter detalhes: stackoverflow.com/a/28724886/41957 .
chnrxn
11
@ JeremyCook, os PEM / certificados não vieram diretamente de terceiros dos quais você os baixou. Eles reuniram os materiais das fontes originais. Não é possível para terceiros gerar um certificado de outra pessoa, a menos que possua a chave correta (que somente a outra pessoa terá).
chnrxn
4
@endolith - Olhando para pip.pypa.io/en/stable/user_guide/#configuration parece que você pode variáveis de ambiente uso, ou um pip.confarquivo de tê-los referenciado permanentemente sem especificar no comando
Cinderhaze
63

A resposta do kenorb é muito útil (e ótima!).
Entre suas soluções, talvez essa seja a mais simples: --trusted-host

Por exemplo, neste caso, você pode fazer

pip install --trusted-host pypi.python.org linkchecker

O arquivo pem (ou qualquer outra coisa) é desnecessário.

plhn
fonte
Isso também funciona para outros comandos, comopip list --trusted-host pypi.python.org --outdated
Igor
61

Para mim, o problema foi corrigido através da criação de uma pasta pip, com um arquivo: pip.ini por C:\Users\<username>\AppData\Roaming\ exemplo:

C:\Users\<username>\AppData\Roaming\pip\pip.ini

Dentro dele eu escrevi:

[global]
trusted-host = pypi.python.org
               pypi.org
               files.pythonhosted.org

Reiniciei o python e, em seguida, o pip confiava permanentemente nesses sites e os usava para baixar pacotes.

Se você não conseguir encontrar a pasta AppData no Windows, escreva %appdata%no explorador de arquivos e ela deve aparecer.

user2673238
fonte
Estranhamente, isso não está ajudando na minha máquina Win10: /
mcandre
11
No trabalho, ambiente Windows 10, usando o emulador de console do Cmder. --trusted-host usado para resolver o problema "'SSLError (SSLCertVerificationError (1,' [SSL: CERTIFICATE_VERIFY_FAILED]) verificação de certificado com falha: certificado autoassinado na cadeia de certificados". Hoje ele parou de funcionar. Coloquei uma cópia da minha pasta pip ( . tiradas de ../AppData/Local/) em ../AppData/Roaming/ e está tudo certo com o meu mundo python locais novamente muito obrigado!
IdusOrtus
11
Ótimo! Muito obrigado. --trusted-host não funciona para mim agora, mas sua solução ajuda.
Alexander Prokofyev
11
Por que não foi baixado ao instalar o Python>
98Ed 30/10/19
Impressionante! Eu estava procurando por erros relacionados ao GIT, proxy da empresa, SSL e apenas relacionado ao pip. Obrigado e espero que este comentário traga aqui pessoas confusas como eu.
negas 27/12/19
41

As respostas são bastante semelhantes e um pouco confusas. No meu caso, os certificados na rede da minha empresa eram o problema. Consegui solucionar o problema usando:

pip install --trusted-host files.pythonhosted.org --trusted-host pypi.org --trusted-host pypi.python.org oauthlib -vvv

Como visto aqui . O argumento -vvv pode ser omitido se a saída detalhada não for necessária

Koji D'infinte
fonte
10
Apenas um para resolver o meu problema, obrigado.
Gringo Suave
Incrível, o único que funcionou para mim também!
Ethikz 21/06/19
Funciona porque hoje estou atrás de algum proxy que retira o SSL normal. Normalmente, não preciso especificar hosts confiáveis ​​quando os adultos executam a rede.
MrChrister
isso funciona para mim também. acima não funcionou
Srinath Ganesh
32

Correção permanente

pip install --upgrade pip --trusted-host pypi.org --trusted-host files.pythonhosted.org

Por exemplo:

pip install <package name> --trusted-host pypi.org --trusted-host files.pythonhosted.org
Devesh Sharma
fonte
24

Para resolver esse problema de uma vez por todas, você pode verificar se possui um pip.confarquivo.

É aqui que você pip.confdeve estar, de acordo com a documentação :

No Unix, o arquivo de configuração padrão é: $HOME/.config/pip/pip.confque respeita a variável de ambiente XDG_CONFIG_HOME.

No macOS, o arquivo de configuração é $HOME/Library/Application Support/pip/pip.confse o diretório $HOME/Library/Application Support/pipexiste$HOME/.config/pip/pip.conf

No Windows, o arquivo de configuração é %APPDATA%\pip\pip.ini.

Dentro de um virtualenv:

No Unix e no macOS, o arquivo é $VIRTUAL_ENV/pip.conf

No Windows, o arquivo é: %VIRTUAL_ENV%\pip.ini

Você pip.confdeve se parecer com:

[global]
trusted-host = pypi.python.org

pip install linkcheckerinstalado linkcheckersem reclamações depois que eu criei o pip.confarquivo.

Alex-Antoine Fortin
fonte
11
$ HOME / Biblioteca / Suporte a aplicativos / pip não existe na minha máquina, existe um local alternativo?
42shadow42
Parece que o pipguia do usuário foi atualizado desde quando publiquei esta resposta. Atualizei minha resposta para o macOS. Ajuda?
Alex-Antoine Fortin
Não afeta o erro SSL na minha máquina Win10: /
mcandre
Não corrige o problema no MacOSX.
MoDJ 01/07/19
Estou no macOS. Se você instalou o python3 usando brew, certifique-se de estar usando pip3e crie o pip.confas $HOME/.config/pip/pip.conf. Eu trabalhei para mim.
anu
23

A maneira mais direta que encontrei é fazer o download e usar o "DigiCert High Assurance EV Root CA" do DigiCert em https://www.digicert.com/digicert-root-certificates.htm#roots

Você pode visitar https://pypi.python.org/ para verificar o emissor do certificado, clicando no ícone de cadeado na barra de endereço ou aumentar seu crédito de nerd usando o openssl:

$ openssl s_client -connect pypi.python.org:443
CONNECTED(00000003)
depth=1 /C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/businessCategory=Private Organization/1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/serialNumber=3359300/street=16 Allen Rd/postalCode=03894-4801/C=US/ST=NH/L=Wolfeboro,/O=Python Software Foundation/CN=www.python.org
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
 1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA

O último valor de CN na cadeia de certificados é o nome da CA da qual você precisa fazer o download.

Para um esforço único, faça o seguinte:

  1. Faça o download do CRT do DigiCert
  2. Converta o formato CRT para PEM
  3. Exporte a variável de ambiente PIP_CERT para o caminho do arquivo PEM

(a última linha assume que você está usando o shell bash) antes de executar o pip.

curl -sO http://cacerts.digicert.com/DigiCertHighAssuranceEVRootCA.crt 
openssl x509 -inform DES -in DigiCertHighAssuranceEVRootCA.crt -out DigiCertHighAssuranceEVRootCA.pem -text
export PIP_CERT=`pwd`/DigiCertHighAssuranceEVRootCA.pem

Para tornar isso reutilizável, coloque DigiCertHighAssuranceEVRootCA.crt em algum lugar comum e exporte PIP_CERT adequadamente em seu ~ / .bashrc.

chnrxn
fonte
4
Usei sua resposta para exportar a CA raiz da nossa empresa para a variável PIP_CERT e, finalmente, depois de tentar tudo o mais, incluindo 'pip --cert cert.pem', o seu caminho funcionou ... apenas o pacote de instalação do pip. BIG +1 - sim, temos um firewal / proxy / utm.
Marlon
Isso ainda falhou para mim no Mac Mojave. Eu segui exatamente as 3 etapas e ainda recebo "Erro: o pip está configurado com locais que exigem TLS / SSL, no entanto, o módulo ssl no Python não está disponível". Eu tentei todas as opções --trusted-host e --cert e o pip não funcionará. Tentei atualizar o pip e obtive o erro SSL. Eu instalei o pip do zero com curl e ainda recebo o erro quando executo o pip. Tempo para abandonar pip e manter a conda :(
user1255933 31/03
21

Você tem as seguintes possibilidades para resolver problemas CERTIFICATE_VERIFY_FAILED:

  • Use HTTP em vez de HTTPS (por exemplo --index-url=http://pypi.python.org/simple/).
  • Use --cert <trusted.pem>ou CA_BUNDLEvariável para especificar um pacote CA alternativo.

    Por exemplo, você pode acessar a URL com falha do navegador da web e importar o certificado raiz para o seu sistema.

  • Execute python -c "import ssl; print(ssl.get_default_verify_paths())"para verificar a atual (valide se existir).

  • O OpenSSL possui um par de ambientes ( SSL_CERT_DIR, SSL_CERT_FILE) que podem ser usados ​​para especificar diferentes bancos de dados de certificados PEP-476 .
  • Use --trusted-host <hostname>para marcar o host como confiável.
  • No Python, use verify=Falsefor requests.get(consulte: SSL Cert Verification ).
  • Use --proxy <proxy>para evitar verificações de certificado.

Leia mais em: Wrapper TLS / SSL para objetos de soquete - Verificando certificados .

kenorb
fonte
Do seu primeiro ponto, como faço para especificar HTTP com o comando pip?
rayzinnz 28/01
11
@rayzinnz Adicionei o exemplo.
kenorb 28/01
16

Defina a hora e a data corretas!

Para mim, soube que minha data e hora estavam configuradas incorretamente no Raspberry Pi. O resultado foi que todas as conexões SSL e HTTPS falharam, usando o servidor https://files.pythonhosted.org/ .

Atualize-o assim:

sudo date -s "Wed Thu  23 11:12:00 GMT+1 2018"
sudo dpkg-reconfigure tzdata

Ou diretamente com, por exemplo, o tempo do Google:

Ref .: https://superuser.com/a/635024/935136

sudo date -s "$(curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g')"
sudo dpkg-reconfigure tzdata
Thomas Devoogdt
fonte
Está me deixando louco por horas - obrigado por isso. O tempo do PI ficou fora de 10 dias para mim, causando (aparentemente) todos os tipos de erros durante a instalação do pip.
SteveJ
13

Recentemente, encontrei esse problema por causa do filtro de conteúdo da web da minha empresa que usa sua própria Autoridade de Certificação para poder filtrar o tráfego SSL. O PIP não parece estar usando os certificados CA do sistema no meu caso, produzindo o erro que você mencionou. O downgrade do PIP para a versão 1.2.1 apresentou seu próprio conjunto de problemas posteriormente, então voltei à versão original que acompanha o Python 3.4.

Minha solução alternativa é bastante simples: use easy_install. Ou ele não verifica os certificados (como a versão antiga do PIP) ou sabe usar os certificados do sistema porque funciona todas as vezes para mim e ainda posso usar o PIP para desinstalar os pacotes instalados com o easy_install.

Se isso não funcionar e você puder obter acesso a uma rede ou computador que não tenha esse problema, sempre poderá configurar seu próprio servidor PyPI pessoal: como criar um índice local do repositório pypi sem espelho?

Eu quase fiz isso até tentar usar easy_installcomo último esforço.

Ross Peoples
fonte
O mesmo problema aqui. Outra solução alternativa é exportar o certificado raiz da empresa como um arquivo e pedir pippara usá-lo --cert MyCompanyRootCA.crt.
glibdud
10

Você pode tentar ignorar o erro SSL usando http em vez de https. É claro que isso não é o ideal em termos de segurança , mas se você estiver com pressa, deve fazer o truque:

pip install --index-url=http://pypi.python.org/simple/ linkchecker
Augusto Destrero
fonte
11
Eu estava esperando que sua sugestão funcionasse. Loucamente, eu tenho exatamente os mesmos erros, incluindo o primeiroCould not fetch URL http://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
Jeremy Cook
3
Ok, então outra solução alternativa é baixar o pacote tar.gz disponível aqui pypi.python.org/pypi/LinkChecker/9.3 e instalá-lo com: pip install LinkChecker-9.3.tar.gz
Augusto Destrero
3
Mas se o pacote que você deseja instalar tiver dependências, você deverá baixar e instalar também todas as dependências; se forem muitas, isso poderá se tornar um pesadelo.
Augusto Destrero
11
Para mim, eu tive que baixar o whl (para o meu caso, pyserial) e instalá-lo. Isso pegou as dependências que não foram coletadas pelo tar.gz ... Então, talvez whl seja outra opção ao longo das linhas de @baxeico python -m pip install pyserial-3.4-py2.py3-none-any.whl Para mim Nada disso funcionou: 1. cacert.pem --cert 2. exportar certificado de empresa, convertendo a PEM 3. easy_install em cygwin 4. --trusted-host
charo
11
O agora longo funciona a partir de 2017 - o acesso HTTP foi completamente cortado. mail.python.org/pipermail/distutils-sig/2017-October/…
gbtimmon
8

As respostas a serem usadas

pip install --trusted-host pypi.python.org <package>

trabalhos. Mas você terá que verificar se há redirecionamentos ou caches pip. No Windows 7 com pip 9.0.1, eu tive que correr

pip install \
  --trusted-host pypi.python.org \
  --trusted-host pypi.org \
  --trusted-host files.pythonhosted.org \
  <package>

Você pode encontrá-los com a bandeira detalhada.

pmbotter
fonte
7

Instalei o pip 1.2.1 com easy_install e atualizei para a versão mais recente do pip (6.0.7 na época), que é capaz de instalar pacotes no meu caso.

easy_install pip==1.2.1
pip install --upgrade pip
theofanis
fonte
7

Você tem 4 opções:

Usando um certificado como parâmetro

$ pip install --cert /path/to/mycertificate.crt linkchecker

Usando um certificado em um pip.conf

Crie este arquivo:

$HOME/.pip/pip.conf (Linux)

%HOME%\pip\pip.ini (Windows)

e adicione estas linhas:

[global]
cert = /path/to/mycertificate.crt

Ignorando certificado e usando HTTP

$ pip install --trusted-host pypi.python.org linkchecker

Ignorando certificado e usando HTTP em um pip.conf

Crie este arquivo:

$HOME/.pip/pip.conf (Linux)

%HOME%\pip\pip.ini (Windows)

e adicione estas linhas:

[global]
trusted-host = pypi.python.org

Fonte

Thiago Falcao
fonte
6

Em primeiro lugar,

    pip install --trusted-host pypi.python.org <package name>

não funcionou para mim. Continuei recebendo o erro CERTIFICATE_VERIFY_FAILED. No entanto, notei nas mensagens de erro que eles faziam referência ao site 'pypi.org'. Então, usei isso como o nome do host confiável, em vez de pypi.python.org. Isso quase me levou até lá; a carga ainda estava falhando com CERTIFICATE_VERIFY_FAILED, mas posteriormente. Encontrando a referência ao site que estava falhando, incluí-o como um host confiável. O que acabou por funcionar para mim foi:

    pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package name>
Pat B.
fonte
5

Não tenho certeza se isso está relacionado, mas tive um problema semelhante que foi corrigido ao copiar esses arquivos do Anaconda3 / Library / bin para o Anaconda3 / DLLs:

libcrypto-1_1-x64.dll

libssl-1_1-x64.dll

Frio frio
fonte
Com o Anaconda 2019.03, copiei os seguintes arquivos da <pasta Anaconda3> / Library / bin para <Anaconda3> / DLLs libcrypto-1_1-x64.dll libcrypto-1_1-x64.pdb libssh2.dll libssl-1_1-x64.dll libssl- 1_1-x64.pdb Então eu adicionar um erro ConnectTimeout, então atualizados .condarc configuração de proxy
MordicusEtCubitus
Trabalho. Cara, você é GÊNIO! Estou em roaming nos fóruns há 1,5 hora, apenas para encontrar essa solução simples e subestimada.
ivan866 6/03
4

Teve o mesmo problema ao tentar pip install ftputilcom o ActivePython 2.7.8, ActivePython 3.4.1 e "estoque" Python 3.4.2 no Windows 7 Enterprise de 64 bits. Todas as tentativas falharam com os mesmos erros do OP.

Solução do problema do Python 3.4.2 fazendo o downgrade para o pip 1.2.1: easy_install pip==1.2.1(consulte https://stackoverflow.com/a/16370731/234235 ). A mesma correção também funcionou para o ActivePython 2.7.8.

O bug, relatado em março de 2013, ainda está aberto: https://github.com/pypa/pip/issues/829 .

psteiner
fonte
Isso funcionou para mim também. Embora possa parecer uma má idéia, em primeiro lugar, fazer o downgrade para uma versão mais antiga do pip, eu estava lidando com pacotes django antigos, de modo que a versão antiga do pip realmente correspondia aos outros pacotes.
Mknaf
O problema 829 está encerrado.
Ortomala Lokni
3

Nada nesta página funcionou para mim até que eu usei a opção --verbose para ver que ela queria acessar files.pythonhosted.org em vez de pypi.python.org:

pip install --trusted-host files.pythonhosted.org <package_name>

Portanto, verifique o URL no qual está realmente falhando através da opção --verbose.

Dan Austin
fonte
2

Resolvi esse problema removendo meu pip e instalando a versão mais antiga do pip: https://pypi.python.org/pypi/pip/1.2.1

user3080641
fonte
Embora esse link possa responder à pergunta, é melhor incluir aqui as partes essenciais da resposta e fornecer o link para referência. As respostas somente para links podem se tornar inválidas se a página vinculada for alterada. - Do comentário
apomene 26/08/16
@apomene como é que o OP deveria, include the essential parts of the answer herejá que é um link para um arquivo binário ...?
22616 Thomas Ayoub
@ThomasAyoub, eu acredito que você já sabe, que a mensagem acima é auto cheio de SO, quando sinalizar uma resposta como a resposta única ligação
apomene
@apomene que não responde à minha pergunta, ainda não vejo o que OP poderia / deveria adicionar?
21816 Thomas Ayoub
11
@ThomasAyoub, Para elaborar mais, meu comentário (SO) indica que a pergunta é curta e contém apenas um link, o que significa que poderia ser melhor um comentário. Minha intenção não era declarar explicitamente que o OP deveria adicionar detalhes que reorganizassem o link, mas detalhes sobre por que isso responde à pergunta.
Apomene
2

Você pode tentar isso para ignorar "https":

pip install --index-url=http://pypi.python.org/simple/ --trusted-host pypi.python.org  [your package..]
Smaillns
fonte
11
se você ainda tem outros problemas com a versão pip você pode tentar este pip install --trusted-host pypi.python.org --upgrade pip –
Smaillns
2

Uma solução ( para Windows ) é criar um arquivo chamado pip.inina %AppData%\pip\pasta (crie a pasta se ela não existir) e insira os seguintes detalhes:

[global]
cert = C:/certs/python_root.pem
proxy = http://my_user@my_company.com:my_password@proxy_ip:proxy_port

... e então podemos executar a instrução de instalação:

pip3 install PyQt5

Outra opção é instalar o pacote usando argumentos para o proxy e o certificado ...

$ pip3 install --proxy http://my_user@my_company.com:my_password@proxy_ip:proxy_port \
   --cert C:/certs/python_root.pem PyQt5

Para converter os *.cerarquivos de certificado no *.pemformato necessário , execute a seguinte instrução:

$ openssl x509 -inform der -in python_root.cer -out python_root.pem

Espero que isso ajude alguém!

Marco
fonte
11
Para outros sistemas operacionais, dê uma olhada na resposta de Alex-Antoine Fortin
Dinei
Não precisava do proxy, apenas o certificado. Eu corri; pip3.6 config set global.cert '/<path>/server.crt'
avatarofhope2
2

No meu caso, foi devido ao certificado SSL ser assinado pela CA interna da minha empresa. Usar soluções alternativas como pip --certnão ajudou, mas o seguinte pacote ajudou:

pip install pip_system_certs

Veja: https://pypi.org/project/pip-system-certs/

Esse pacote corrige o pip e solicita, em tempo de execução, o uso de certificados do repositório de sistema padrão (em vez dos pacotes certificados ca).

Isso permitirá que o pip verifique as conexões tls / ssl com os servidores nos quais o certificado é confiável pela instalação do sistema.

cortês
fonte
11
parece precisar instalar pip_sysem_certs para anular o erro [SSL: CERTIFICATE_VERIFY_FAILED], o problema é que, ao tentar instalá-lo, obteve o erro [SSL: CERTIFICATE_VERIFY_FAILED] ...
athos
Isso pode ter sido uma solução em algum momento, mas pip_system_certsquebrou completamente meu ambiente Python e, por esse motivo, essa não é uma boa resposta. Não instale pip_system_certs. Consulte stackoverflow.com/questions/27835619/… para obter mais informações.
h0r53 14/01
1

para mim, isso ocorre porque anteriormente eu estou executando um script que define o proxy (para violinista), reabrindo o console ou reinicializando corrigindo o problema.

uingtea
fonte
O violinista pode ser ignorado configurando "Descriptografar tráfego HTTPS" para "... somente nos navegadores" em Ferramentas | Opções. Isso corrigiu o problema para mim.
Tephyr
1

Recentemente, enfrentei o mesmo problema no python 3.6 com o visual studio 2015. Depois de dois dias, obtive a solução e ela está funcionando bem para mim.

Recebi o erro abaixo ao tentar instalar o numpy usando o pip ou no visual studio Não foi possível buscar o URL https://pypi.python.org/simple/numpy/ : ocorreu um problema ao confirmar o certificado ssl: [SSL: CERTIFICATE_VERIFY_FAILED] falha na verificação do certificado (_ssl.c: 748) - ignorando Não foi possível encontrar uma versão que atenda ao requisito numpy (das versões:) Nenhuma distribuição correspondente encontrada para numpy

Resolução:

Para sistema operacional Windows

  1. aberto -> "% appdata%" Crie a pasta "pip" se não existir.
  2. Na pasta pip, crie o arquivo "pip.ini".
  3. Edite o arquivo e escreva
    [global]
    trust-host = pypi.python.org Salve e feche o arquivo. Agora instale usando o pip / visual studio, ele funciona bem.
Ankit Raval
fonte
1

No meu caso, eu estava executando o Python na imagem mínima do docker alpino. Faltavam certificados de CA raiz. Consertar:

apk update && apk add ca-certificates

Martin Melka
fonte
1

A resposta de Vaulstein me ajudou.

Não encontrei o arquivo pip.ini em nenhum lugar do meu pc. O mesmo aconteceu com o seguinte.

  1. Foi para a pasta AppData. Você pode obter a pasta appdata abrindo o prompt de comando e digite echo% AppData%

Local do AppData usando o prompt de comando

Ou simplesmente digite% AppData% no Windows Explorer.

Localização de AppData no Windows Explorer

  1. Crie uma pasta chamada pip dentro dessa pasta appdata.

  2. Na pasta pip que você acabou de criar, crie um arquivo de texto simples chamado pip.ini

  3. Após as seguintes definições de configuração nesse arquivo, use um editor simples de sua escolha.

arquivo pip.ini:

[list]
format=columns

[global]
trusted-host = pypi.python.org pypi.org

Agora você deve estar pronto para ir.

VivekDev
fonte
1

Eu enfrentei um problema semelhante. A solução que funcionou para mim 1) desinstalar o python 2.7 2) excluir a pasta python27 3) reinstalar o último python

Satyam Raikar
fonte
0

Para mim, nenhum dos métodos sugeridos funcionou - usando cert, HTTP, host confiável.

No meu caso, alternar para uma versão diferente do pacote funcionou (paho-mqtt 1.3.1 em vez de paho-mqtt 1.3.0 nesta instância).

Parece que o problema foi específico para essa versão do pacote.

MiN
fonte
0

Você pode ter esse problema se alguns certificados estiverem ausentes no sistema.eg no opensuse install ca-certificates-mozilla

sancelot
fonte