Python 패키지를 설치할 수 없습니다 [SSL : TLSV1_ALERT_PROTOCOL_VERSION]


167

pipSSL 오류가 발생 하여를 사용하여 Python 라이브러리를 설치하려고합니다 .

~/projects/base  pre-master±  pip install xdict

Collecting xdict
  Could not fetch URL https://pypi.python.org/simple/xdict/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) - skipping
  Could not find a version that satisfies the requirement xdict (from versions: )
No matching distribution found for xdict

핍 버전 : pip 9.0.1

이 오류를 어떻게 해결합니까?


1
이 답변을 따르십시오 stackoverflow.com/a/46808948/2419644
Mitul Shah

답변:


443

다음과 같이 핍을 업그레이드하십시오.

curl https://bootstrap.pypa.io/get-pip.py | python

참고 : sudo python가상 환경이 아닌 경우 위 를 사용해야 할 수도 있습니다.

( 즉, 을 pip사용하여 업그레이드해도 제대로 업그레이드되지는 않습니다. 이는 닭과 계란 문제 일뿐입니다. TLS> = 1.2를 사용하지 않으면 작동하지 않습니다.)pippip install --upgrade pippip

이 자세한 답변 에서 언급했듯이 최근 pip에 대한 TLS 지원 중단으로 인한 것입니다. Python.org 사이트는 TLS 버전 1.0 및 1.1에 대한 지원중단했습니다 .

Python 상태 페이지에서 :

완료 -롤링 브라운 아웃이 완료되었으며 TLSv1.0 및 TLSv1.1이 비활성화되었습니다. 4 월 11 일 15:37 UTC


PyCharm (virtualenv) 사용자의 경우 :

  1. 쉘로 가상 환경을 실행하십시오. ( "./venv/bin/activate"를 자신의 경로로 바꾸십시오)

    source ./venv/bin/activate
  2. 업그레이드 실행

    curl https://bootstrap.pypa.io/get-pip.py | python
  3. PyCharm 인스턴스를 다시 시작하고 Preference 에서 Python 인터프리터를 확인하십시오 .


2
이것은 나를 위해 일했다! sudo권한 거부 오류로 인해 전면 에 추가해야 했습니다. 감사!
Simar

34
작동하려면 sudo가 필요합니다. curl https://bootstrap.pypa.io/get-pip.py | sudo python
Wallace

2
@Simar @Wallace 예, sudo가상 환경이 아닌 경우 필요할 수 있습니다. 대답에 그 비트도 추가했습니다.
Anupam

1
가상 환경이 아닌 경우 Ilya에서 언급 한 것처럼 Python 바이너리의 경로를 지정해야합니다.
Chris

2
OSX에서 이것은 나에게 더 효과적이었다curl https://bootstrap.pypa.io/get-pip.py | sudo -H python3
nick fox

26

그러나 curl명령 자체가 오류와 함께 실패하거나 업그레이드 후에도 "tlsv1 경고 프로토콜 버전"이 지속되면 pip운영 체제의 기본 OpenSSL 라이브러리 버전 < 1.0.1또는 Python 버전 < 2.7.9(또는 3.4Python 3의 < )이 최신 TLS 1.2 프로토콜을 지원하지 않음을 의미합니다 것을 pip요구하기 때문에 PyPI에 연결하는 약 년 전 . 파이썬 인터프리터에서 쉽게 확인할 수 있습니다.

>>> import ssl
>>> ssl.OPENSSL_VERSION
'OpenSSL 0.9.8o 01 Jun 2010'
>>> ssl.PROTOCOL_TLSv1_2
 AttributeError: 'module' object has no attribute 'PROTOCOL_TLSv1_2'

AttributeError(대신 예상 '5')는 파이썬 다음 stdlib 의미 ssl구하려면 openssl lib 디렉토리에 컴파일 된 모듈은, (에서 OpenSSL 라이브러리가 이상 업데이트 할 수 있습니다 경우에도)을 TLSv1.2 프로토콜에 대한 지원이 부족하다.

다행히도 추가 Python 패키지를 수동으로 설치하여 Python (및 전체 시스템) 을 업그레이드하지 않고도 해결할 수 있습니다 . 자세한 단계별 가이드는 여기에서 확인할 수 있습니다 .

참고 curlpipwget모든 것은 SSL 연결을 (사용 설정에 대해 동일한 OpenSSL을 lib 디렉토리에 따라 $ openssl version명령). libcurl에서 지원은 컬 버전 1.2 이후 TLS 7.34 ,하지만 오래된 컬 버전은 해야 연결할 수 있다면 당신은 OpenSSL 버전 1.0.2 (이상)했다.


PS
의 경우 파이썬 3 , 사용하시기 바랍니다 python3pip3사방 (당신이에하지 않는 한 venv / VIRTUALENV)에 포함 curl에서 명령 :
$ curl https://bootstrap.pypa.io/get-pip.py | python3 --user


4
또한 내가 아니라 pip3, 실행해야한다는 것을 깨달았습니다. pip명령 -V으로 버전을 확인하여 올바른 핍을 실행하고 있는지 확인하십시오 !!
1

9

OS X에서 @Anupam의 답변에 따라 실행 권한에 관계없이 다음과 같은 오류가 발생했습니다.

EnvironmentError로 인해 패키지를 설치할 수 없습니다 : [Errno 13] 권한 거부 : ...

결국 작동하는 것은 내 브라우저 ( https://pypi.org/simple/pip/ )에서 직접 PyPI에서 최신 pip 패키지 (9.0.3)를 다운로드 하고 내용을 추출한 다음 로컬로 패키지를 pip 설치하는 것이 었습니다 .

pip install ./pip-9.0.3/

이것은 내 [SSL: TLSV1_ALERT_PROTOCOL_VERSION]오류를 수정했습니다.


7

@Anupam 의 솔루션이 나를 위해 일했습니다. 그러나 sudo가상 파이썬 환경의 정확한 위치 를 사용 하고 지정해야했습니다.

curl https://bootstrap.pypa.io/get-pip.py | sudo /Users/{your user name}/{path to python}/bin/python

6

로컬 버전을 업그레이드하기 위해 약간의 변형을 사용했습니다.

curl https://bootstrap.pypa.io/get-pip.py | python - --user

에 설명 된대로 홈 디렉토리 아래 핍과 패키지를 유지하는 경우이 문제가 발생 이 요점 .


5

다음 솔루션이 저에게 효과적이었습니다.

brew install python2

또한 pip버전 1.10.1로 업그레이드


^ 이것은 OSX에서 기본 파이썬을 사용하지 않는 사람들을위한 것입니다. 나는 질문이 OSX에 국한된 것이 아니라고 생각하지만 어쨌든 Linux를 실행하지 않는다면 시스템에 설치된 Python을 통해 콘텐츠를 작성하지 않는 한 작동합니다.
jar

이것은 나를 위해 일했습니다 .OSX에서 파이썬을 사용합니다. 내 상황은 일주일 동안 pip 패키지를 설치하는 데 소비했지만 실패했습니다. 나는 pip를 제거 했으며이 시점부터 pip를 설치 한이 명령을 얻을 때까지 아무것도 할 수 없습니다. 감사합니다!
amm

3

TLS 버전을 확인하십시오.

python2 -c "import urllib2,json; print(json.loads(urllib2.urlopen('https://www.howsmyssl.com/a/check').read())['tls_version'])"

TLS 버전이 1.2 미만인 경우 PyPI 리포지토리가 초기 TLS를 더 이상 사용하지 않는 경우가 많으므로 업그레이드해야합니다.

출처- 파이썬 업그레이드 시간 : TLS v1.2는 곧 필수입니다

다음 명령을 사용하여 TLS 버전을 업그레이드 할 수 있습니다.

sudo apt-get update && sudo apt-get install openssl libssl-dev

문제가 해결 될 것입니다. 행운을 빕니다!

편집 : TLS 버전에 관계없이 개인 파이썬 패키지 저장소를 사용하여 패키지를 다운로드 할 수 있습니다. 개인 파이썬 패키지 리포지토리


2

이것은 나를 위해 일했습니다. 파이썬 전에 sudo 추가

curl https://bootstrap.pypa.io/get-pip.py |sudo python

2

Python2 WIN10 사용자의 경우 :

1. 파이썬을 완전히 제거하고 모든 폴더를 포함시킵니다.

2. 최신의 python-2.7.msi를 가져오고 설치하십시오 (2.7.15 버전)

2 단계 후에 pip도 설치되어있을 수 있습니다.

4. 이제 시스템 환경이 변경되지 않은 경우 pip를 사용하여 패키지를 설치할 수 있습니다. "tlsv1 경고 프로토콜 버전"이 나타나지 않습니다.


2

기존 수정 프로그램을 모두 시도했지만 작동하지 않습니다.

https://www.python.org/downloads/mac-osx/ 에서 .pkg를 다운로드하여 python 2.7 (pip도 설치)을 다시 설치합니다.

설치 후 다운로드 pkg 나를 위해 작동


2

나는 또한이 문제에 부딪쳤다. 근본적인 문제는 Python 2.7 버전 <2.7.9의 ssl 라이브러리가 더 이상 pip 메커니즘과 호환되지 않는다는 것입니다.

Windows에서 실행 중이고 (우리와 같이) 호환되지 않는 2.7 버전의 FWIW에서 쉽게 업그레이드 할 수없는 경우 최신 버전의 Python (예 : Python 2.7)의 다른 설치에서 다음 파일을 복사하면 15) 다른 기계에서 설치 :

    Lib\ssl.py
    libs\_ssl.lib
    DLLs\_ssl.dll

SSL 계층을 지원되는 계층으로 효과적으로 "업그레이드"합니다. 그런 다음 pip를 다시 사용하여 pip를 업그레이드 할 수있었습니다.


1

이것은 나를 위해 일했습니다. 최신 버전의 pip를 설치 한 다음 라이브러리 ( ciscoconfparse ) 를 설치했습니다 .

핍 업그레이드 :

curl https://bootstrap.pypa.io/get-pip.py | sudo /Users/{your user name}/{path to python}/bin/python

1

myenv :

파이썬 2.7.14

핍 9.0.1

맥 OSX 10.9.4


mysolution :

  1. https://packaging.python.org/tutorials/installing-packages/get-pip.py 에서 수동으로 다운로드

  2. 운영 python get-pip.py


심판 :

https://github.com/pypa/warehouse/issues/3293#issuecomment-378468534

https://packaging.python.org/tutorials/installing-packages/

get-pip.py를 안전하게 다운로드 [1]

python get-pip.py를 실행하십시오. [2] pip를 설치하거나 업그레이드합니다. 또한 설치 도구와 휠이 설치되어 있지 않은 경우 설치 도구와 휠을 설치합니다.

pip, setuptools 및 wheel이 최신인지 확인하십시오.

pip만으로도 사전 빌드 된 바이너리 아카이브에서 설치하기에 충분하지만, setuptools 및 휠 프로젝트의 최신 사본은 소스 아카이브에서도 설치할 수 있도록하는 데 유용합니다.

python -m pip install --upgrade pip setuptools wheel


1

나는 또한 내 Windows10 에서이 문제를 겪고 모든 대답을 시도했지만 내 문제를 해결하지 못했습니다.

C : \ python367 \ Scripts> pip install Flask

플라스크 수집 플라스크 요구 사항을 충족하는 버전을 찾을 수 없습니다 (버전에서 :) 플라스크에 대해 일치하는 분포가 없습니다.

그 후, pip 구성 파일이 수정되었습니다. 따라서 pip.ini원래 기본 구성으로 설정하고 pip 명령을 다시 실행하면 나에게 적합합니다!

내 솔루션을 요약하면 다음과 같습니다.

  1. pip.ini (보통 경로 아래 C:\ProgramData\pip)가 수정 되었는지 확인하십시오 .

  2. 1 단계에서 예이면 기본 구성으로 재설정하십시오.


1

또는 단순히 필요한 라이브러리가 리포지토리에 없습니다. 나는 파이썬 초보자이며 pip 업그레이드에 대한 모든 조언은 마침내 오도 된 것으로 나타났습니다. https://pypi.org/ 를 살펴보면 라이브러리 (내 경우에는 공기 흐름)가 이전 버전에서 중지 된 후에 이름이 바뀌 었습니다. 그렇습니다, 그 바보 같은 해결책도 가능합니다 :-).


1

모든 사용자 python3pip3사용자를 위해 :

curl https://bootstrap.pypa.io/get-pip.py | sudo python3

팬더를 설치한다고 가정합니다.

pip3 install pandas --user

1

다음을 통해 pip 설치에 대한 답변 :

  1. curl https://bootstrap.pypa.io/get-pip.py |sudo python 또는
  2. curl https://bootstrap.pypa.io/get-pip.py | python

오류가 계속 발생하여 나를 위해 작동하지 않았습니다.

Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)) - skipping
ERROR: Could not find a version that satisfies the requirement pip (from versions: none)
ERROR: No matching distribution found for pip

다음을 pip통해 수동으로 설치 해야했습니다.

  1. pip배포 웹 사이트로 이동
  2. tar.gz버전 다운로드
  3. 파일을 로컬 및 cd디렉토리에 압축 해제
  4. 운영 python setup.py install
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.