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

저는 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



답변

—–> 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을 사용하여 패키지를 설치하십시오.

답변

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

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는 검증 .


답변

kenorb의 답변 은 매우 유용합니다 (그리고 훌륭합니다!).

그의 솔루션 중 가장 간단한 방법 일 수 있습니다.
--trusted-host

예를 들어이 경우에는

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

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


답변

나를 위해 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%파일 탐색기에 쓰면 나타납니다.


답변

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

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

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


답변

영구 수정

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


답변

이 문제를 한 번에 해결하기 위해 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됩니다.