Posso me deslocar usando “pip install --cert”?

14

Tentando descobrir se há uma maneira de evitar o uso do sinalizador --cert para pip quando estou instalando pacotes no trabalho. Há algum problema com o proxy que só me permite baixar os pacotes de que preciso quando forneço esse sinalizador, apesar de adicionar o arquivo mycert.crt a /usr/local/share/ca-certificates e executar sudo update-ca-certificates .

Um exemplo das mensagens que estou vendo é:

$ pip install "virtualenv>=1.10.1"
Downloading/unpacking virtualenv>=1.10.1
  Could not fetch URL https://pypi.python.org/simple/virtualenv/: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed>
  Will skip URL https://pypi.python.org/simple/virtualenv/ when looking for download links for virtualenv>=1.10.1
  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:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed>
  Will skip URL https://pypi.python.org/simple/ when looking for download links for virtualenv>=1.10.1
  Cannot fetch index base URL https://pypi.python.org/simple/
  Could not fetch URL https://pypi.python.org/simple/virtualenv/: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed>
  Will skip URL https://pypi.python.org/simple/virtualenv/ when looking for download links for virtualenv>=1.10.1
  Could not find any downloads that satisfy the requirement virtualenv>=1.10.1
Cleaning up...
No distributions at all found for virtualenv>=1.10.1
Storing complete log in /tmp/tmpwW5qXD

Isso pode ser resolvido usando:

pip install --cert=/usr/local/share/ca-certificates/mycert.crt

No entanto, eu preferiria não ter que fazer isso (já que tenho certeza de que outros aplicativos vão se deparar com esse problema).

Estou executando o Linux Mint 15 (embora eu tenha tido problemas semelhantes no Ubuntu 12.04), versão 1.4.1 do pip.

    
por Ian Lee 25.10.2013 / 02:15

2 respostas

6

Você pode definir isso por meio do arquivo de configuração de pip, que está em $HOME/.pip/pip.conf ou %APPDATA%\pip\pip.ini no Windows:

[global]
cert = /usr/local/share/ca-certificate/mycert.crt

Este arquivo permite que você defina basicamente todos os sinalizadores usados pelo pip. A documentação completa está em link

    
por 19.12.2013 / 20:02
3

Para mim, nenhuma das soluções alternativas do arquivo de configuração funcionou. Estou usando o pip 1.5.4 no Ubuntu 14.04

O que eventualmente funcionou para mim é instalar primeiro o certificado no sistema (para mim, no Ubuntu isso seria)

sudo cp ~/my_cert.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

O anterior atualiza automaticamente o arquivo do pacote (verificando na parte inferior de /etc/ssl/certs/ca-certificates.crt você deve ver agora o mesmo certificado de my_cert.crt )

Agora use esse caminho em PIP_CERT . E adicione-o ao meu .bashrc :

echo export PIP_CERT=/etc/ssl/certs/ca-certificates.crt >> ~/.bashrc

EXCLUSÃO DE RESPONSABILIDADE : Eu já publiquei esta resposta em SO (mesma resposta do link eventualmente duplicado acima, mas no início não encontrei a outra resposta (eventualmente duplicada). Então, se alguém como eu chegar aqui primeiro, então isso pode ajudar.

Talvez eu esteja quebrando algum tipo de regra para postar a mesma resposta duas vezes, uma em SO e outra em superusuário. Se sim, desculpe por isso.

    
por 02.08.2016 / 12:31