"연결 오류 : [SSL : CERTIFICATE_VERIFY_FAILED] 인증서 확인 실패 (_ssl.c : 598)"와 함께 pip 설치가 실패합니다.


397

저는 Python을 처음 접했고 > pip install linkcheckerWindows 7을 사용 하려고 합니다.

  • 패키지에 관계없이 pip 설치가 실패합니다. 예를 들어 > pip install scrapySSL 오류도 발생합니다.
  • Python 3.4.1의 바닐라 설치에는 pip 1.5.6이 포함되었습니다. 가장 먼저 시도한 것은 linkchecker를 설치하는 것입니다. Python 2.7은 이미 설치되어 있으며 ArcGIS와 함께 제공됩니다. python그리고 pip나는 3.4.1 설치 될 때까지 명령 줄에서 사용할 수 없었습니다.
  • > pip search linkchecker공장. pip 검색은 사이트의 SSL 인증서를 확인하지 않기 때문일 수 있습니다.
  • 나는 회사 네트워크에 있지만 인터넷에 연결하기 위해 프록시를 거치지 않습니다.
  • 각 회사 컴퓨터 (내 컴퓨터 포함)에는 https://google.com으로의 TLS 트래픽 모니터링을 활성화하는 등 여러 가지 이유로 사용되는 신뢰할 수있는 루트 인증 기관이 있습니다 . 그것이 그와 관련이 있는지 확실하지 않습니다.

다음은 실행 후 내 pip.log 의 내용입니다 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

1
정반대! Python 3.4.1 및 이전 버전은 기본적으로 인증서 유효성 검사를 수행하지 않습니다. 파이썬 3.4.2를 사용하고 있다면 이것이 문제라고 생각했을 것입니다. (참조 문제 21013메일 링리스트에이 스레드 가 꽤 긴 스레드의 시작입니다. 참고.) 죄송합니다 사실은 도움이되지 수!
Cody Piersall

3
피들러가 열려 있는지 확인한 후 닫으십시오. 피들러가 SSL을 끊으려고하면 피들러 핍을 닫을 때 핍이 나옵니다. 피들러를 닫으면 모든 것이 정상입니다
José Barbosa

답변:


639

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

"config --global http.sslVerify false"문으로 패키지를 설치하십시오.

신뢰할 수있는 호스트로 설정 pypi.org하여 SSL 오류를 무시할 수 있습니다 files.pythonhosted.org.

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

참고 : 2018 년 4 월에 Python 패키지 색인 이에서 (으)로 이전 pypi.python.org되었습니다 pypi.org. 이는 기존 도메인을 사용하는 "신뢰할 수있는 호스트"명령이 더 이상 작동하지 않음을 의미합니다.

영구 수정

pip 10.0이 출시 된 이후, pip자체 업그레이드만으로이 문제를 영구적으로 해결할 수 있습니다.

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

또는 최신 버전을 얻으려면 다시 설치하면 됩니다.

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

(… 그리고 get-pip.py관련 Python 인터프리터 로 실행 ).

pip install <otherpackage>이 후에 작동해야합니다. 그렇지 않은 경우 아래 설명에 따라 추가 작업을 수행해야합니다.


신뢰할 수있는 호스트 및 프록시를 구성 파일추가 할 수 있습니다 .

pip.ini(Windows) 또는 pip.conf(unix)

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

대체 솔루션 (안전하지 않음)

대부분의 답변은 보안 문제가 될 수 있습니다.

대부분의 Python 패키지를 쉽게 설치하는 데 도움이되는 두 가지 해결 방법은 다음과 같습니다.

  • easy_install 사용 : 정말 게으르고 많은 시간을 낭비하지 않으려면을 사용하십시오 easy_install <package_name>. 일부 패키지는 발견되지 않거나 작은 오류가 발생합니다.
  • 휠 사용 : python 패키지휠을 다운로드하고 pip 명령 pip install wheel_package_name.whl을 사용하여 패키지를 설치하십시오.

7
귀하의 업데이트로 문제가 해결되었습니다. 필자의 경우 회사 방화벽은 SSL 연결을위한 신뢰할 수있는 호스트로 자신을 삽입합니다. 프록시 설정이 잘못되었다고 가정했지만 자세한 정보를 추가하면 문제가 SSL임을 알 수 있습니다. 색인 URL 변경이 문제를 해결했습니다.
피터

11
대박! 신뢰할 수있는 호스트이면 충분합니다. pip install --trusted-host pypi.python.org pypi_package. 을 사용 --verbose하지 않으면 --trusted-hostHTTPS 연결이 실패 --trusted-host하지만 HTTP가 아닌 동일한 HTTPS 연결이 시도 되었지만 성공한다는 것을 나타냅니다.
Oliver

12
HTTP 버전을 사용하지 않는 (그리고 심지어 신뢰하기도) 보안 위험이 있습니까?
Paŭlo Ebermann 2016

3
--index-url 매개 변수를 무시하도록 짧게 만들 수 있습니다.이 명령을 사용해보십시오.pip install --trusted-host pypi.python.org pythonPackage
Alter Hu

8
그것은 나를 위해 작동하지 않습니다. macbookpro 15 "Python 2.7 pip 9.0.1에서 mac os high sierra 실행하기 sudo -H pip install --trusted-host pypi.python.org numpy 및 sudo pip install --trusted-host pypi.python.org "ssl 인증서를 확인하는 데 문제가 있습니다 : [SSL : TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 경고 프로토콜 버전 (_ssl.c : 661)-건너 뛰기 요구 사항을 충족하는 버전을 찾을 수 없습니다"
DaniPaniz

123

이 매개 변수를 사용하여 인증서를 지정할 수 있습니다.

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

참조 : 문서»참조 안내서»pip

회사의 루트 인증서를 지정해도 작동하지 않으면 cURL이 작동 할 수 있습니다. http://curl.haxx.se/ca/cacert.pem

CRT 파일이 아닌 PEM 파일을 사용해야합니다. CRT 파일이있는 경우 파일을 PEM 으로 변환 해야 합니다. 주석에이 파일이 CRT 파일과 함께 작동하지만 확인되지 않은 보고서가 있습니다.

또한 확인 : SSL CERT는 검증 .


1
컬 하나는 안전합니다. 나는 그것을 사용하는 것이 좋습니다.
Steve Tauber

1
@JeremyCook 그것은 서버에 시간이 될 수 있습니다, 과거에 있다면 그것은 검증 과정 일 수 있습니다
Giovanni Bitliner

1
CRT 형식은 지원되지 않으며 PEM 형식 만 지원됩니다. openssl을 사용하여 CRT를 PEM 형식으로 변환해야합니다. 또한 다운로드 한 번들에 올바른 루트 CA가 포함되어 있는지 확인해야합니다. 자세한 내용은 위의 답변을 참조하십시오 : stackoverflow.com/a/28724886/41957 .
chnrxn

1
@JeremyCook, PEM / 인증서는 다운로드 한 타사에서 직접 가져 오지 않았습니다. 그들은 원본에서 인증서를 수집했습니다. 올바른 키 (다른 사람 만 가지고 있음)가 없으면 제 3자가 다른 사람의 인증서를 생성 할 수 없습니다.
chnrxn

4
@endolith - 살펴보면 pip.pypa.io/en/stable/user_guide/#configuration 것은 그것은 본다처럼 할 수 있습니다 중 하나를 사용하여 환경 변수, 또는 pip.conf그 명령에 지정하지 않고 영구적으로 참조해야 할 파일
Cinderhaze

63

kenorb의 답변 은 매우 유용합니다 (그리고 훌륭합니다!).
그의 솔루션 중 가장 간단한 방법 일 수 있습니다. --trusted-host

예를 들어이 경우에는

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

pem 파일 (또는 다른 것)은 필요하지 않습니다.


이것은 또한 다음과 같은 다른 명령에도 적용됩니다.pip list --trusted-host pypi.python.org --outdated
Igor

60

나를 위해 pip파일을 사용 하여 폴더를 만들어 문제를 해결 pip.ini 했습니다 C:\Users\<username>\AppData\Roaming\ .

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

그 안에 나는 썼다 :

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

파이썬을 다시 시작한 다음 pip는 이러한 사이트를 영구적으로 신뢰하고 패키지를 다운로드하는 데 사용했습니다.

Windows에서 AppData 폴더를 찾을 수 없으면 %appdata%파일 탐색기에 쓰면 나타납니다.


이상하게도 이것은 내 Win10 시스템에서 도움이되지 않습니다 : /
mcandre

1
직장에서 Cmder 콘솔 에뮬레이터를 사용하는 Windows 10 환경. --trusted-host는 " 'SSLError (SSLCertVerificationError (1,'[SSL : CERTIFICATE_VERIFY_FAILED] 인증서 확인 실패 : 인증서 체인의 자체 서명 된 인증서" "문제를 해결하는 데 사용되었습니다.) 오늘 작동이 중지되었습니다. pip 폴더 사본을 배치했습니다 ( . ../AppData/Roaming/에서) ../AppData/Local/에서 가져온 모든 다시 내 로컬 파이썬 세계와 권리 감사합니다 많이!
IdusOrtus

1
큰! 대단히 감사합니다. --trusted-host는 지금 작동하지 않지만 솔루션이 도움이됩니다.
Alexander Prokofyev 2018 년

1
Python을 설치할 때 왜 다운로드되지 않았습니까?
98Ed

대박! 나는 GIT, 회사의 프록시, SSL과 관련된 오류를 찾고 있었고 단지 pip 관련이었습니다. 감사합니다. 저는이 의견이 사람들을 저처럼 혼란스럽게 여기 길 바랍니다.
dec

41

대답은 상당히 비슷하고 약간 혼란 스럽습니다. 필자의 경우 회사 네트워크의 인증서가 문제였습니다. 다음을 사용하여 문제를 해결할 수있었습니다.

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

여기에서 볼 수 있듯이 . 자세한 출력이 필요하지 않은 경우 -vvv 인수를 생략 할 수 있습니다.


10
하나만 내 문제를 해결하기 위해 감사합니다.
Gringo Suave

나에게도 효과가 있었던 유일한 것!
ethikz 2016 년

오늘은 정상적인 SSL을 제거하는 프록시 뒤에 있기 때문에 작동합니다. 일반적으로 어른이 네트워크를 실행할 때 신뢰할 수있는 호스트를 지정할 필요는 없습니다.
MrChrister

이것은 나에게도 효과적입니다. 위의 작동하지 않습니다
Srinath Ganesh

32

영구 수정

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

예를 들어 :

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

24

이 문제를 한 번에 해결하기 위해 pip.conf파일 이 있는지 확인할 수 있습니다 .

문서pip.conf 에 따르면 여기가 있어야합니다 .

Unix에서 기본 구성 파일은 $HOME/.config/pip/pip.confXDG_CONFIG_HOME 환경 변수를 따릅니다.

macOS에서 구성 파일은 $HOME/Library/Application Support/pip/pip.conf디렉토리 $HOME/Library/Application Support/pip가 다른 경우$HOME/.config/pip/pip.conf

Windows에서 구성 파일은 %APPDATA%\pip\pip.ini입니다.

virtualenv 내부에서 :

유닉스와 맥 OS에서 파일은 $VIRTUAL_ENV/pip.conf

Windows에서 파일은 다음과 같습니다. %VIRTUAL_ENV%\pip.ini

당신 pip.conf은 다음과 같아야합니다 :

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

pip install linkchecker파일을 linkchecker만든 후 불평없이 설치 pip.conf됩니다.


1
$ HOME / Library / Application Support / pip가 내 컴퓨터에 없습니다. 다른 위치가 있습니까?
42shadow42

pip이 답변을 게시 한 후 사용자 안내서가 업데이트 된 것 같습니다. macOS에 대한 답변을 업데이트했습니다. 도움이 되나요?
Alex-Antoine Fortin

내 Win10 컴퓨터의 SSL 오류에 영향을 미치지 않습니다 : /
mcandre

MacOSX에서 문제를 해결하지 않습니다.
MoDJ

나는 macOS에 있습니다. 를 사용하여 python3을 설치 한 경우 as를 brew사용 pip3하고 있는지 확인하십시오 . 나는 나를 위해 일했다. pip.conf$HOME/.config/pip/pip.conf
anu

23

내가 찾은 가장 간단한 방법은 DigiCert ( https://www.digicert.com/digicert-root-certificates.htm#roots) 에서 "DigiCert High Assurance EV Root CA"를 다운로드하여 사용하는 것입니다.

주소 표시 줄에있는 자물쇠 아이콘을 클릭하여 https://pypi.python.org/ 를 방문 하여 인증서 발급자를 확인하거나 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

인증서 체인의 마지막 CN 값은 다운로드해야하는 CA의 이름입니다.

일회성 노력으로 다음을 수행하십시오.

  1. CRT 다운로드DigiCert
  2. CRT를 PEM 형식으로 변환
  3. PIP_CERT 환경 변수를 PEM 파일의 경로로 내 보냅니다.

pip를 실행하기 전에 (마지막 줄은 bash 쉘을 사용한다고 가정합니다).

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

이것을 재사용 할 수있게하려면 DigiCertHighAssuranceEVRootCA.crt를 일반적인 곳에 놓고 ~ / .bashrc에 PIP_CERT를 적절히 내보내십시오.


4
귀하의 답변을 사용하여 회사의 루트 CA를 PIP_CERT 변수로 내보내고 마지막으로 'pip --cert cert.pem'을 포함한 다른 모든 방법을 시도한 후 pip 설치 패키지 만 사용했습니다. BIG +1-예, firewal / proxy / utm이 있습니다.
Marlon

이것은 Mac Mojave에서 여전히 실패했습니다. 나는 정확히 3 단계를 밟았지만 여전히 "오류 : pip는 TLS / SSL이 필요한 위치로 구성되었지만 Python의 ssl 모듈은 사용할 수 없습니다"라는 메시지가 나타납니다. --trusted-host 및 --cert 옵션을 모두 시도했지만 pip가 작동하지 않습니다. pip를 업그레이드하려고 시도하고 SSL 오류가 발생했습니다. curl로 pip를 처음부터 설치했지만 pip를 실행할 때 여전히 오류가 발생합니다. 핍을 버리고 콘다에 집착하는 시간 :(
user1255933

21

문제를 해결하기 위해 다음과 같은 가능성이 있습니다 CERTIFICATE_VERIFY_FAILED.

  • HTTPS 대신 HTTP를 사용하십시오 (예 :) --index-url=http://pypi.python.org/simple/.
  • 대체 CA 번들을 지정 하려면 --cert <trusted.pem>또는 CA_BUNDLE변수를 사용하십시오 .

    예를 들어 웹 브라우저에서 실패한 URL로 이동하여 루트 인증서를 시스템으로 가져올 수 있습니다.

  • python -c "import ssl; print(ssl.get_default_verify_paths())"현재 항목을 확인하려면 실행하십시오 (있는 경우 확인).

  • OpenSSL에는 서로 다른 인증서 데이터베이스 PEP-476 을 지정하는 데 사용할 수있는 환경 쌍 ( SSL_CERT_DIR, SSL_CERT_FILE)이 있습니다 .
  • --trusted-host <hostname>호스트를 신뢰할 수있는 것으로 표시하는 데 사용하십시오 .
  • 파이썬 사용에 verify=False대한 requests.get(참조 : SSL CERT는 검증 ).
  • --proxy <proxy>인증서 확인을 피하기 위해 사용 합니다.

: 더 많은 읽기 소켓 개체에 대한 TLS / SSL 래퍼 - 확인 인증서를 .


첫 번째 시점에서 pip 명령으로 HTTP를 어떻게 지정합니까?
rayzinnz

1
@rayzinnz 예제를 추가했습니다.
kenorb

16

시간과 날짜를 올바르게 설정하십시오!

나를 위해, 내 날짜와 시간이 Raspberry Pi에서 잘못 구성되어 나왔습니다. 그 결과 https://files.pythonhosted.org/ 서버를 사용하여 모든 SSL 및 HTTPS 연결에 실패했습니다 .

다음과 같이 업데이트하십시오.

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

또는 Google의 시간과 같이 직접 :

참조 : 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

몇 시간 동안 나를 미치게했다-고마워. PI 시간은 10 일 동안 꺼져서 pip 설치 중에 모든 종류의 오류가 발생했습니다.
SteveJ

13

SSL 인증을 필터링 할 수 있도록 자체 인증 기관을 사용하는 회사의 웹 콘텐츠 필터로 인해 최근이 문제가 발생했습니다. 내 경우에는 PIP가 시스템의 CA 인증서를 사용하지 않는 것 같으므로 언급 한 오류가 발생합니다. PIP를 버전 1.2.1로 다운 그레이드하면 나중에 고유 한 문제가 발생하므로 Python 3.4와 함께 제공된 원래 버전으로 돌아갔습니다.

내 해결 방법은 매우 간단합니다 : use easy_install. 이전 PIP 버전과 같은 인증서를 확인하지 않거나 매번 작동하므로 시스템 인증서를 사용하는 것을 알고 있으며 여전히 PIP를 사용하여 easy_install로 설치된 패키지를 제거 할 수 있습니다.

그래도 문제가 해결되지 않고 문제가없는 네트워크 나 컴퓨터에 액세스 할 수 있다면 언제든지 개인 PyPI 서버를 설정할 수 있습니다. 미러없이 로컬 자체 pypi 리포지토리 인덱스를 만드는 방법은 무엇입니까?

나는 easy_install마지막 도랑 노력으로 사용할 때까지 거의 그렇게했습니다 .


여기서도 같은 문제입니다. 다른 해결 방법은 회사의 루트 인증서를 파일로 내보내고 pip와 함께 사용하도록 지시하는 것입니다 --cert MyCompanyRootCA.crt.
glibdud

10

https 대신 http를 사용하여 SSL 오류를 무시할 수 있습니다. 물론 이것은 보안 측면에서 최적아니지만 서두르면 트릭을 수행해야합니다.

pip install --index-url=http://pypi.python.org/simple/ linkchecker

1
나는 당신의 제안이 효과를 기대하고있었습니다. 미친 듯이 나는 첫 번째 오류를 포함하여 정확히 같은 오류를 받았습니다Could not fetch URL http://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
Jeremy Cook

3
좋아, 또 다른 해결 방법은 여기에 사용할 수있는 tar.gz의 패키지 다운로드되도록 pypi.python.org/pypi/LinkChecker/9.3을 하고 그것을 설치 : PIP LinkChecker-9.3.tar.gz를 설치
아우 Destrero

3
그러나 설치하려는 패키지에 종속성이있는 경우 모든 종속성도 다운로드하여 설치해야합니다. 패키지가 많으면 악몽이 될 수 있습니다.
Augusto Destrero

1
나를 위해 whl (내 경우에는 pyserial)을 다운로드하여 설치해야했습니다. 이것은 tar.gz에 의해 수집되지 않은 종속성을 선택했습니다 ... 그래서 whl은 @baxeico python -m pip install pyserial-3.4-py2.py3-none-any.whl 라인을 따라 또 다른 옵션 일 수 있습니다. 1. --cert cacert.pem 2. PEM으로 변환하는 회사 인증서 내보내기 3. cygwin에서 easy_install 4. --trusted-host
charo

1
이제 longs는 2017 년부터 작동합니다. HTTP 액세스가 완전히 차단되었습니다. mail.python.org/pipermail/distutils-sig/2017-October/…
gbtimmon

8

사용하는 답변

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

작업. 그러나 리디렉션이 있거나 캐시 pip에 도달 했는지 확인해야 합니다. 와 Windows 7 pip 9.0.1에서 실행해야했습니다.

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

verbose 플래그를 사용하여 찾을 수 있습니다.


7

easy_install과 함께 pip 1.2.1을 설치하고 필자의 경우 패키지를 설치할 수있는 최신 버전의 pip (당시 6.0.7)로 업그레이드했습니다.

easy_install pip==1.2.1
pip install --upgrade pip

7

4 가지 옵션이 있습니다.

인증서를 매개 변수로 사용

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

에서 인증서 사용 pip.conf

이 파일을 작성하십시오.

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

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

다음 줄을 추가하십시오.

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

인증서 무시 및 HTTP 사용

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

인증서 무시 및 pip.conf에서 HTTP 사용

이 파일을 작성하십시오.

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

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

다음 줄을 추가하십시오.

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

출처


6

가장 먼저,

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

나를 위해 일하지 않았다. CERTIFICATE_VERIFY_FAILED 오류가 계속 발생했습니다. 그러나 오류 메시지에서 'pypi.org'사이트를 참조한 것으로 나타났습니다. 그래서 나는 이것을 pypi.python.org 대신 신뢰할 수있는 호스트 이름으로 사용했습니다. 그것은 거의 나를 거기에 데려 갔다. CERTIFICATE_VERIFY_FAILED로로드에 여전히 실패했지만 나중에는 실패했습니다. 실패한 웹 사이트에 대한 참조를 찾기 위해 신뢰할 수있는 호스트로 포함 시켰습니다. 결국 나를 위해 일한 것은 다음과 같습니다.

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

5

이것이 관련되어 있는지 확실하지 않지만 다음 파일을 Anaconda3 / Library / bin에서 Anaconda3 / DLLs로 복사하여 수정 된 비슷한 문제가 있습니다.

libcrypto-1_1-x64.dll

libssl-1_1-x64.dll


Anaconda 2019.03을 사용하여 <Anaconda3 폴더> / Library / bin에서 <Anaconda3> / DLLs libcrypto-1_1-x64.dll libcrypto-1_1-x64.pdb libssh2.dll libssl-1_1-x64.dll libssl-로 다음 파일을 복사했습니다. 1_1-x64.pdb 그런 다음 ConnectTimeout 오류를 추가하여 업데이트 된 프록시 구성 .condarc
MordicusEtCubitus

공장. 당신은 천재입니다! 나는이 과소 평가되고 간단한 해결책을 찾기 위해 1.5 시간 동안 포럼을 로밍했습니다.
ivan866

4

pip install ftputil64 비트 Windows 7 Enterprise에서 ActivePython 2.7.8, ActivePython 3.4.1 및 "주식"Python 3.4.2와 동일한 문제가 발생했습니다 . OP와 동일한 오류로 모든 시도가 실패했습니다.

pip 1.2.1로 다운 그레이드하여 Python 3.4.2의 문제를 해결했습니다 easy_install pip==1.2.1( https://stackoverflow.com/a/16370731/234235 참조 ). ActivePython 2.7.8에서도 동일한 수정 사항이 적용되었습니다.

2013 년 3 월보고 된 버그는 여전히 열려 : https://github.com/pypa/pip/issues/829 .


이것은 나를 위해 일했다. 처음에는 이전 버전의 pip로 다운 그레이드하는 것이 좋지 않은 것처럼 보일 수 있지만 이전 django 패키지를 처리하여 이전 pip 버전이 실제로 다른 패키지와 일치했습니다.
mknaf

문제 829가 닫힙니다.
Ortomala Lokni

3

--verbose 옵션을 사용하여 pypi.python.org가 아닌 files.pythonhosted.org에 도착하기를 원할 때까지이 페이지의 어떤 것도 효과가 없었습니다.

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

따라서 실제로 --verbose 옵션을 통해 실패한 URL을 확인하십시오.


2

내 pip를 제거하고 이전 버전의 pip를 설치 하여이 문제를 해결했습니다 : https://pypi.python.org/pypi/pip/1.2.1


이 링크가 질문에 대한 답변을 제공 할 수 있지만 여기에 답변의 필수 부분을 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않을 수 있습니다. - 리뷰에서
apomene

@apomene OP include the essential parts of the answer here바이너리 파일에 대한 링크이기 때문에 어떻게해야 합니까?
Thomas Ayoub

@ThomasAyoub, 내가 위의 메시지가 자동 SO에서 작성되어, 당신이 이미 알고 생각 만 링크 답변으로 답변하지 않다고 생각하는 경우
apomene

내 질문에 대답하지 않는 @apomene, 여전히 OP가 무엇을 추가 해야하는지 볼 수 없습니까?
Thomas Ayoub

1
@ThomasAyoub, 더 자세히 설명하기 위해 내 의견 (SO)은 질문이 짧고 링크 일 뿐이므로 더 나은 의견이 될 수 있음을 나타냅니다. 나는 OP가 링크를 업그레이드하는 세부 사항을 추가해야한다고 명시 적으로 밝히지 않았으며 이것이 왜 질문에 대답하는지에 대한 세부 사항을 명시해야했습니다.
apomene

2

"https"를 무시하기 위해 이것을 시도 할 수 있습니다.

pip install --index-url=http://pypi.python.org/simple/ --trusted-host pypi.python.org  [your package..]

1
pip 버전에 다른 문제가 있다면 이것을 시도해보십시오 pip install --trusted-host pypi.python.org --upgrade pip –
Smaillns

2

(하나 개의 솔루션 Windows 용이 )라는 파일을 작성하는 것입니다 pip.ini%AppData%\pip\폴더 (존재하지 않는 경우 폴더를 만들를) 다음과 같은 세부 정보를 삽입 :

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

... 그리고 우리는 설치 명령을 실행할 수 있습니다 :

pip3 install PyQt5

또 다른 옵션은 프록시 및 인증서에 대한 인수를 사용하여 패키지를 설치하는 것입니다 ...

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

인증서 *.cer파일을 필요한 *.pem형식으로 변환하려면 다음 지시 사항을 실행하십시오.

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

이것이 누군가를 돕기를 바랍니다!


1
다른 OS의 경우 Alex-Antoine Fortin의 답변을
Dinei

프록시가 필요없고 인증서 만 필요했습니다. 나는 달렸다; pip3.6 config set global.cert '/<path>/server.crt'
avatarofhope2

2

제 경우에는 회사의 내부 CA가 SSL 인증서에 서명했기 때문입니다. 같은 해결 방법을 사용하면 pip --cert도움이되지 않지만 다음 패키지는 도움이되었습니다.

pip install pip_system_certs

참조 : https://pypi.org/project/pip-system-certs/

이 패키지는 pip를 패치하고 런타임시 기본 시스템 저장소 (번들 된 인증서 ca 대신)의 인증서를 사용하도록 요청합니다.

이를 통해 pip는 시스템 설치에서 인증서를 신뢰하는 서버에 대한 tls / ssl 연결을 확인할 수 있습니다.


1
[SSL : CERTIFICATE_VERIFY_FAILED] 오류를 무효화하려면 pip_sysem_certs를 설치해야합니다. 문제는 [SSL : CERTIFICATE_VERIFY_FAILED] 오류가 발생
했다는 것입니다

이것은 언젠가는 해결책 일 수도 있지만 pip_system_certs파이썬 환경을 완전히 깨뜨 렸기 때문에 이것은 좋은 대답이 아닙니다. pip_system_certs를 설치하지 마십시오. 자세한 내용은 stackoverflow.com/questions/27835619/… 를 참조하십시오.
h0r53

1

나를 위해 이것은 이전에 프록시 (피들러로)를 설정하거나 콘솔을 다시 열거 나 재부팅하여 문제를 해결하는 스크립트를 실행하기 때문입니다.


Tools | Options에서 "HTTPS 트래픽 해독"을 "... 브라우저에서만"으로 설정하면 Fiddler를 무시할 수 있습니다. 이것은 나를 위해 문제를 해결했습니다.
tephyr

1

최근에 나는 Visual Studio 2015와 함께 Python 3.6에서 같은 문제에 직면했습니다. 2 일을 보낸 후에 솔루션과 솔루션이 제대로 작동했습니다.

pip를 사용하거나 Visual Studio에서 numpy를 설치하려고 할 때 오류가 발생했습니다. numpy를 수집하면 URL을 가져올 수 없습니다 https://pypi.python.org/simple/numpy/ : SSL 인증서를 확인하는 동안 문제가 발생했습니다. [SSL : CERTIFICATE_VERIFY_FAILED] 인증서 확인 실패 (_ssl.c : 748)-건너 뛰기 요구 사항 numpy (버전에서)를 충족하는 버전을 찾을 수 없습니다. numpy에 대해 일치하는 배포가 없습니다.

해결 :

Windows OS의 경우

  1. open-> "% appdata %" "pip"폴더가 없으면 작성하십시오.
  2. pip 폴더에 "pip.ini"파일을 작성하십시오.
  3. 파일을 편집하고
    [global]
    trusted-host = pypi.python.org를 작성하십시오. 파일을 저장하고 닫으십시오. 이제 pip / visual studio를 사용하여 설치하면 정상적으로 작동합니다.

1

필자의 경우 최소 알파인 도커 이미지에서 Python을 실행 중이었습니다. 루트 CA 인증서가 누락되었습니다. 고치다:

apk update && apk add ca-certificates


1

Vaulstein의 답변이 도움이되었습니다.

내 PC에서 pip.ini 파일을 찾지 못했습니다. 다음도 마찬가지였습니다.

  1. AppData 폴더로 이동했습니다. 명령 프롬프트를 열고 echo % AppData %를 입력하여 appdata 폴더를 얻을 수 있습니다.

명령 프롬프트를 사용하는 AppData 위치

또는 단순히 Windows 탐색기에서 % AppData %를 입력하십시오.

Windows 탐색기의 AppData 위치

  1. 해당 appdata 폴더 안에 pip라는 폴더를 만듭니다.

  2. 방금 만든 pip 폴더에서 pip.ini라는 간단한 텍스트 파일을 만듭니다.

  3. 선택한 간단한 편집기를 사용하여 해당 파일에 다음 구성 설정을 붙여 넣습니다.

pip.ini 파일 :

[list]
format=columns

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

이제 잘 가야합니다.


1

나는 비슷한 문제에 직면했다. 나를 위해 일한 해결책 1) python 2.7 제거 2) python27 폴더 삭제 3) 최신 python 재설치


0

나에게 cert, HTTP, trusted-host를 사용하여 제안 된 방법 중 어느 것도 효과가 없었습니다.

필자의 경우 다른 버전의 패키지로 전환했습니다 (이 경우 paho-mqtt 1.3.0 대신 paho-mqtt 1.3.1).

문제가 해당 패키지 버전에만 해당되는 것 같습니다.


0

시스템에 일부 인증서가없는 경우이 문제가 발생할 수 있습니다 (예 : opensuse install ca-certificates-mozilla).

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