Python paketleri kurulamıyor [SSL: TLSV1_ALERT_PROTOCOL_VERSION]


167

pipSSL hatası alıp kullanarak bir Python kütüphanesi kurmaya çalışıyorum :

~/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 sürümü: pip 9.0.1

Bu hatayı nasıl düzeltirim?



Yanıtlar:


443

Pip'i aşağıdaki gibi yükseltin:

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

Not: sudo pythonSanal bir ortamda değilse yukarıda kullanmanız gerekebilir .

(Not bu yükseltme pipkullanarak pipyani pip install --upgrade pipaynı zamanda doğru yükseltin olmaz. Bu sadece bir tavuk yumurta-mesele. pipYaramayacak sürece TLS> = 1.2 kullanılarak olacaktır.)

Bu ayrıntılı cevapta belirtildiği gibi , bunun nedeni son zamanlarda TLS pip için kullanımdan kaldırılmasıdır. Python.org siteleri TLS sürüm 1.0 ve 1.1 için desteği durdurdu .

Python durum sayfasından:

Tamamlandı - Yuvarlanan kaşıntılar bitti ve TLSv1.0 ve TLSv1.1 devre dışı bırakıldı. 11 Nisan, 15:37 UTC


PyCharm (virtualenv) kullanıcıları için:

  1. Sanal ortamı shell ile çalıştırın. ("./venv/bin/activate" yerine kendi yolunuzu yazın)

    source ./venv/bin/activate
  2. Yükseltmeyi çalıştır

    curl https://bootstrap.pypa.io/get-pip.py | python
  3. Senin pycharm örneğini yeniden başlatın ve içinde Python yorumlayıcısı kontrol Tercihi .


2
Bu benim için çalıştı! sudoİzinleri reddetti hataları nedeniyle ön eklemek zorunda kaldı . Teşekkürler!
Simar

34
Çalışmak için sudo gerektirir: curl https://bootstrap.pypa.io/get-pip.py | sudo python
Wallace

2
@Simar @Wallace evet, sudosanal bir ortamda değilse gerekebilir . Cevabı şimdi de biraz ekledim.
Anupam

1
Sanal bir ortamda değilseniz, Ilya'nın belirttiği gibi python ikili dosya yolunu belirtmeniz gerekebilir
Chris

2
OSX'de bu benim için daha iyi çalıştıcurl https://bootstrap.pypa.io/get-pip.py | sudo -H python3
nick fox

26

Ancak curlkomutun kendisi hatayla başarısız olursa veya "tlsv1 uyarı protokolü sürümü" yükseltmeden sonra bile devam ederse pip, işletim sisteminizin temeldeki OpenSSL kitaplığı sürümü < 1.0.1veya Python sürümü < 2.7.9(veya 3.4Python 3'te < ) daha yeni TLS 1.2 protokolünü desteklemediği anlamına gelir bu pipihtiyaçlar beri PyPI bağlanmak için bir yıl önce . Python yorumlayıcısında kolayca kontrol edebilirsiniz:

>>> 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(Yerine beklenen '5') Kayıt Python'un stdlib demektir ssleski Openssl lib karşı derlenmiş modül, (openssl kütüphanesi veya daha sonra güncellenmiş olabilir bile) TLSv1.2 protokolü için destek yoktur.

Neyse ki, Python'u (ve tüm sistemi) yükseltmeden , ekstra Python paketleri manuel olarak kurarak çözülebilir - ayrıntılı adım adım kılavuz burada Stackoverflow'da bulunabilir .

Not curlve pipve wgettüm SSL bağlantıları (kullanım kurulması için aynı OpenSSL lib bağlıdır $ openssl versionkomutu). libcurl destekleri bukle sürümü beri 1.2 TLS 7,34 , ancak eski bukle versiyonları gerektiğini bağlamak mümkün olmadığını OpenSSL sürümü 1.0.2 (veya üstü) vardı.


PS
için Python 3 , kullanın lütfen python3ve pip3her yerde (eğer olmadıkça bir venv / Virtualenv) dahil curldan komuta yukarıdaki :
$ curl https://bootstrap.pypa.io/get-pip.py | python3 --user


4
Ben de pip3, ben sadece çalıştırmak zorunda olduğunu fark pip- -Vdoğru pip çalıştırdığınızdan emin olmak için komut ile sürümü kontrol !!
Oca

9

@ Anupam'ın OS X üzerindeki cevabını takiben, benim için çalıştığım izinlere bakılmaksızın aşağıdaki hatayla sonuçlandı:

Bir EnvironmentError nedeniyle paketler yüklenemedi: [Errno 13] İzin reddedildi: ...

Sonunda işe yarayan, doğrudan tarayıcımdan daha yeni bir pip paketini (9.0.3) doğrudan tarayıcımdan indirmekti - https://pypi.org/simple/pip/ , içeriği çıkarın ve ardından paketi yerel olarak yükleyin:

pip install ./pip-9.0.3/

Bu benim [SSL: TLSV1_ALERT_PROTOCOL_VERSION]hatalarımı düzeltti .


7

@Anupam'ın çözümü benim için çalıştı. Ancak, sudosanal Python ortamımın tam konumunu kullanmam ve belirtmem gerekiyordu :

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

6

Yerel sürümü yükseltmek için hafif bir varyant kullandım:

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

Bu sorun, pip ve paketleri bu özette açıklandığı gibi ana dizininizin altında tutarsanız ortaya çıkar .


5

Aşağıdaki çözüm benim için çalıştı:

brew install python2

Ayrıca pipsürüm 1.10.1'e yükseltildi


^ Bu, OSX'te varsayılan python kullanmayanlarımız için. Sanırım soru OSX'e özgü değildi, ama yine de, Linux kullanmıyorsanız, bu çalışır --- sistem yüklü Python üzerine içerik yazmıyorsanız.
kavanoz

Bu benim için çalıştı, ben OSX python kullanın. Durumum herhangi bir pip paketi yüklemeye çalışırken bir hafta geçirdim ve başarısız oldu. Pip'i kaldırdım ve o zamandan beri pip'i yükleyen bu komutu alana kadar hiçbir şey yapamam. Teşekkür ederim!
amm

3

TLS sürümünüzü kontrol edin:

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

TLS sürümünüz 1.2'den küçükse, PyPI deposu erken TLS'yi kullanımdan kaldırma süresinde olduğu için yükseltmeniz gerekir.

Kaynak - Python'unuzu Yükseltme Zamanı: TLS v1.2 Yakında Zorunlu Olacak

TLS sürümünü aşağıdaki komutu kullanarak yükseltebilirsiniz:

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

Bu, sorununuzu çözmelidir. İyi şanslar!

EDIT: TLS sürümüne bakılmaksızın kendi özel python paket deponuzu kullanarak paketleri indirebilirsiniz. Özel Python Paket Deposu


2

Bu benim için çalıştı. Python'dan önce sudo ekle

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

2

Python2 WIN10 Kullanıcıları için:

1.Python'u iyice kaldırın, tüm klasörleri ekleyin.

En son python-2.7.msi dosyasını yükleyin ve yükleyin (sürüm 2.7.15)

3. adımdan sonra, pip'in de kurulmuş olduğunu görebilirsiniz.

4.Şimdi, sisteminiz değiştirilmemişse, şimdi paketleri yüklemek için pip'i kullanabilirsiniz. "Tlsv1 uyarı protokolü sürümü" görünmez.



2

Ben de bu problemle karşılaştım. Bunun altında yatan sorun, Python 2.7 sürümleri <2.7.9'daki ssl kitaplığının artık pip mekanizmasıyla uyumlu olmamasıdır.

Windows üzerinde çalışıyorsanız ve (bizim gibi) 2.7, FWIW'ın uyumsuz bir sürümünden kolayca yükseltemiyorsanız, aşağıdaki dosyaları Python'un en son sürümünün (örneğin Python 2.7. 15) kurulumunuza başka bir makinede:

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

SSL katmanınızı desteklenen bir katmana etkin bir şekilde "yükseltir"; biz daha sonra pip yükseltmek için bile pip kullanabilirsiniz.


2

Pip kurulumunun cevapları:

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

hata almaya devam gibi benim için çalışmadı:

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

pipManuel olarak kurmak zorunda kaldım :

  1. Git pipdağıtım web sitesi
  2. tar.gzSürümü indirin
  3. Dosyayı yerel olarak ve cddizine açın
  4. Çalıştırmak python setup.py install

1

Bu benim için çalıştı, pip'in en son sürümünü yükledim ve ardından kütüphaneyi ( ciscoconfparse ) yükledim .

Yükseltme pip:

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

1

myenv:

python 2.7.14

pip 9.0.1

mac osx 10.9.4


çözümüm:

  1. https://packaging.python.org/tutorials/instal-packages/ adresindenget-pip.py manuel olarak indirin

  2. Çalıştırmak python get-pip.py


ref:

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

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

Güvenle İndir get-pip.py [1]

Python get-pip.py dosyasını çalıştırın. [2] Bu, pip kuracak veya güncelleyecektir. Ayrıca, önceden yüklenmemişlerse kurulum araçlarını ve tekerleği yükler.

Pip, kurulum aletleri ve tekerleğin güncel olduğundan emin olun

Önceden oluşturulmuş ikili arşivlerden tek başına pip yüklemek için yeterli olsa da, kaynak araçlarından da yükleyebilmeniz için kurulum araçlarının ve tekerlek projelerinin güncel kopyaları yararlıdır:

python -m pip install --upgrade pip setuptools wheel


1

Ben de Windows10 benim bu sorunu vurdu ve tüm cevapları denedim ama benim sorunum çözmedi.

C: \ python367 \ Scripts> pip install Flask

Flask Toplama Flask gereksinimini karşılayan bir sürüm bulunamadı (versiyonlardan:) Flask için eşleşen dağıtım bulunamadı

Bundan sonra, pip yapılandırma dosyasının değiştirildiğini görüyorum. Bu yüzden, pip.iniorijinal varsayılan yapılandırma olarak ayarladım, pip komutunu yeniden çalıştırın ve benim için çalışıyor!

Benim çözümümün özeti:

  1. Pip.ini'nin (genellikle yolun altında C:\ProgramData\pip) değiştirildiğini kontrol edin;

  2. 1. adımda evet ise, varsayılan yapılandırmaya sıfırlamayı deneyin.


1

Ya da sadece gerekli kütüphane repoda değil. Ben Python newbie ve nihayet yanıltıcı olarak gösterilen pip yükseltme hakkında tüm tavsiyeler. Sadece https://pypi.org/ adresine bakmak zorunda kaldım , kütüphane (benim durumumda hava akışı) bazı eski sürümlerde durdu, sonra yeniden adlandırıldı. Evet, bu aptalca çözüm de mümkündür :-).


1

Tüm kullanıcılar python3ve pip3kullanıcılar için:

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

ve sonra pandalar kurmak istediğinizi varsayalım

pip3 install pandas --user
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.