“pip install --cert”를 사용할 수 있습니까?


21

직장에서 패키지를 설치할 때 --cert 플래그를 사용하여 파이를 피하는 방법이 있는지 확인하려고합니다. 프록시에 mycert.crt파일을 추가 /usr/local/share/ca-certificates하고 실행 하고 있음에도 불구하고 해당 플래그를 제공 할 때 필요한 패키지 만 다운로드 할 수있는 몇 가지 문제가 있습니다 sudo update-ca-certificates.

내가보고있는 메시지의 예는 다음과 같습니다.

$ 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

대신 다음을 사용하여 해결할 수 있습니다.

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

그러나 다른 응용 프로그램 이이 문제에 부딪 칠 것이기 때문에 그렇게하지 않아도됩니다.

Linux Mint 15 (이전에는 Ubuntu 12.04에서 매우 유사한 문제가 있었음), pip 버전 1.4.1을 실행하고 있습니다.


이것은이의 잠재적 인 중복 될 수 stackoverflow.com/questions/19377045/... 나는 정책이 집계 등을 위해 무엇인지 잘 모르겠어요 ..
라이언

답변:


9

Windows 에 $HOME/.pip/pip.conf있거나 %APPDATA%\pip\pip.iniWindows 에있는 pip 구성 파일을 통해이를 설정할 수 있습니다 .

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

이 파일을 사용하면 기본적으로 pip에서 사용하는 모든 플래그를 설정할 수 있습니다. 전체 설명서는 https://pip.pypa.io/en/latest/user_guide/#configuration에 있습니다.


2
내 원래 게시물에 대한 귀하의 의견은 실제 답변으로 이어진다 고 생각합니다. 즉, pip는 시스템 인증서를 사용하지 않습니다. 이것은 VPN을 통해 직장과 가정 환경을 전환 할 때 문제가 발생하지만 좋은 솔루션입니다. 솔루션보다 인증서에 더 많은 문제가 있습니다.
이안 리


5

나에게는 구성 파일 해결 방법 중 하나가 효과가 없었습니다. 우분투 14.04 에서 pip 1.5.4 를 사용하고 있습니다.

결국 나를 위해 일한 것은 먼저 시스템에 인증서를 설치하는 것입니다 (우분투에서는 나에게 이것이 될 것입니다)

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

이전은 자동으로 번들 파일을 업데이트합니다 (아래에서 확인하면와 /etc/ssl/certs/ca-certificates.crt동일한 인증서가 my_cert.crt표시됨).

이제에서 해당 경로를 사용하십시오 PIP_CERT. 그리고 그것을 내 것에 추가하십시오 .bashrc:

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

면책 조항 : 나는 이미이 답변을 SO에 게시했습니다 (위의 '결과적으로 복제 된 링크'와 동일한 대답이지만 처음에는 다른 사람을 찾지 못했습니다 (결국 중복 된 답변) ... 그래서 나와 같은 누군가가 먼저 여기에 오면, 그러면 도움이 될 것입니다.

어쩌면 나는 같은 대답을 두 번 게시하는 규칙을 어길 수 있습니다. 하나는 SO와 다른 하나는 수퍼 유저에 있습니다. 그렇다면 죄송합니다.


2

이것은 구성 파일이 어디에 있는지 알 필요없이 나를 위해 일했습니다.

python -m pip config set global.cert C:\\Path\\cert.crt

pip 버전 10 이상이 필요하다고 생각합니다.

 python -m pip --version

config set 명령의 출력은 편의를 위해 구성 파일의 이름을 출력합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.