pip install “bağlantı hatası: [SSL: CERTIFICATE_VERIFY_FAILED] sertifika doğrulaması başarısız oldu (_ssl.c: 598)” ile başarısız oluyor


397

Python için çok yeni ve > pip install linkcheckerWindows 7 üzerinde çalışıyorum . Bazı notlar:

  • Paket ne olursa olsun pip install başarısız oluyor. Örneğin > pip install scrapy, SSL hatasına de neden olur.
  • Python 3.4.1'in vanilya montajı pip 1.5.6'yı içeriyordu. Yapmaya çalıştığım ilk şey linkchecker kurmaktı. Python 2.7 zaten kuruldu, ArcGIS ile geldi. pythonve pip3.4.1'i yükleyene kadar komut satırından kullanılamıyordu.
  • > pip search linkcheckerİşler. Belki de pip araması sitenin SSL sertifikasını doğrulamıyor olabilir.
  • Bir şirket ağındayım, ancak İnternet'e erişmek için proxy kullanmıyoruz.
  • Her şirket bilgisayarında (benimkiler dahil), https://google.com adresine TLS trafiğinin izlenmesini sağlamak da dahil olmak üzere çeşitli nedenlerle kullanılan bir Güvenilen Kök Sertifika Yetkilisi vardır . Bunun bir ilgisi olup olmadığından emin değilim.

İşte çalıştırdıktan sonra benim pip.log içeriği 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
Tam tersi! Python 3.4.1 ve öncesi varsayılan olarak sertifika doğrulaması yapmaz. Python 3.4.2 kullansaydın, sorun olduğunu düşünürdüm. ( Posta listesinde 21013 numaralı konuya ve bu ileti dizisine bakın . Bunun oldukça uzun bir ileti dizisinin başlangıcı olduğunu unutmayın.) Üzgünüm, gerçekten yardımcı olamadım!
Cody Piersall

3
Kemancının açık olup olmadığını kontrol edin ve kapatın. Fiddler mola SSL denemek ve bu benim pip çalışır, ben kemancı pip kapattığınızda benim için çalışıyor. Kemancımı kapattığımda her şey yolunda gidiyor
José Barbosa

Yanıtlar:


639

-----> pip install gensim config - küresel http.ssl Yanlış doğrula

Herhangi bir paketi "config --global http.sslVerify false" deyimiyle yükleyin

SSL ana bilgisayarlarını ayarlayarak pypi.orgve files.pythonhosted.orggüvenilir ana bilgisayarlar olarak yok sayabilirsiniz .

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

Not : Bazen Nisan 2018 döneminde, Python Paket Dizini göç edildi pypi.python.orgiçin pypi.org. Bu, eski etki alanını kullanan "güvenilir ana bilgisayar" komutlarının artık çalışmadığı anlamına gelir.

Kalıcı Düzeltme

Pip 10.0'un piyasaya sürülmesinden bu yana, sadece pipkendisini yükselterek bunu kalıcı olarak düzeltebilmelisiniz :

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

Veya en son sürümü almak için yeniden yükleyerek:

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

(… Ve daha sonra get-pip.pyilgili Python yorumlayıcısıyla çalışır).

pip install <otherpackage>sadece bundan sonra çalışmalı. Değilse, aşağıda açıklandığı gibi daha fazlasını yapmanız gerekecektir.


Yapılandırma dosyanıza güvenilir ana makineleri ve proxy'yi eklemek isteyebilirsiniz .

pip.ini(Windows) veya pip.conf(unix)

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

Alternatif Çözümler (Daha az güvenli)

Yanıtların çoğu bir güvenlik sorunu oluşturabilir.

Python paketlerinin çoğunun kolaylıkla yüklenmesine yardımcı olan geçici çözümlerden ikisi:

  • Easy_install özelliğini kullanma : gerçekten tembelseniz ve fazla zaman kaybetmek istemiyorsanız, kullanın easy_install <package_name>. Bazı paketlerin bulunmayacağını veya küçük hatalar vereceğini unutmayın.
  • Çarkı Kullanma : python paketinin Çarkını indirin pip install wheel_package_name.whlve paketi kurmak için pip komutunu kullanın.

7
Güncellemeniz bana bir şeyler getiriyor. Benim durumumda şirket güvenlik duvarı kendisini SSL bağlantıları için güvenilir ana bilgisayar olarak ekliyor. Proxy kurulumunun yanlış olduğunu varsaydım, ancak ayrıntılı ekleyerek sorunun SSL olduğunu gösterdi. Dizin-url değişikliği sorun etrafında çalıştı.
peater

11
Harika, teşekkürler! Güvenilir ana bilgisayar yeterli gibi görünüyor. pip install --trusted-host pypi.python.org pypi_package. Kullanılması --verboseolmadan gösterileri --trusted-hostHTTPS bağlantı ile aynı HTTPS bağlantısı girişiminde oysa (HTTP) başarısız --trusted-hostama başarılı olur.
Oliver

12
HTTP sürümünü kullanmak (ve hatta ona güvenmek) de bir güvenlik riski oluşturmuyor mu?
Paŭlo Ebermann

3
--index-url parametresini yok saymak için kısa yapabilirsiniz, bu komutu da deneyin: tamam olmalıdır:pip install --trusted-host pypi.python.org pythonPackage
Alter Hu

8
benim için çalışmıyor. Mac os high sierra'i bir macbookpro'da çalıştırma 15 "Python 2.7 pip 9.0.1 Her ikisini de denedim: sudo -H pip install --trusted-host pypi.python.org numpy ve sudo pip install --trusted-host pypi.python.org numpy bana her zaman aynı hatayı veriyor: "SSL sertifikası onaylanırken bir sorun oluştu: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 uyarı protokolü sürümü (_ssl.c: 661) - atlama Gereksinimi karşılayan bir sürüm
bulunamadı

123

Bu parametre ile bir sertifika belirtebilirsiniz:

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

Bakınız: Dokümanlar »Başvuru Kılavuzu» pip

Şirketinizin kök sertifikasının işe yaramaması durumunda belki cURL çalışacaktır: http://curl.haxx.se/ca/cacert.pem

CRT dosyası değil PEM dosyası kullanmalısınız. Bir CRT dosyanız varsa , dosyayı PEM'e dönüştürmeniz gerekecek Yorumlarda bu durumun artık bir CRT dosyası ile çalıştığı ancak doğrulanmadığına dair raporlar var.

Ayrıca kontrol edin: SSL Sertifika Doğrulaması .


1
Curl one güvenli. Bunu kullanmanızı öneririm.
Steve Tauber

1
@JeremyCook Sunucunuzdaki zaman olabilir, eğer geçmişte ise doğrulama işlemi olabilir
Giovanni Bitliner

1
CRT formatı desteklenmez, sadece PEM formatı desteklenir. Openssl kullanarak CRT'yi PEM formatına dönüştürmeniz gerekecektir. Ayrıca, indirdiğiniz paketin doğru kök CA'yı içerdiğini de doğrulamanız gerekir. Ayrıntılar için lütfen yukarıdaki cevabıma bakın: stackoverflow.com/a/28724886/41957 .
chnrxn

1
@JeremyCook, PEM / sertifikaları doğrudan indirdiğiniz üçüncü taraftan gelmedi. Sertifikaları orijinal kaynaklardan topladılar. 3. bir tarafın doğru anahtarı (yalnızca başka birinin sahip olacağı) olmadığı sürece başkasının sertifikası oluşturması mümkün değildir.
chnrxn

4
@endolith - baktığımızda pip.pypa.io/en/stable/user_guide/#configuration görünüyor gibi birini yapabilirsiniz kullanım ortamı değişkenleri veya pip.confonları komuta belirtmeden kalıcı başvurulan olması dosyası
Cinderhaze

63

kenorb'un cevabı çok faydalı (ve harika!).
Çözümleri arasında belki de en basit olanı: --trusted-host

Örneğin, bu durumda şunları yapabilirsiniz:

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

Pem dosyası (veya başka bir şey) gereksizdir.


Bu aynı zamanda diğer komutlar için de çalışırpip list --trusted-host pypi.python.org --outdated
Igor

61

Benim için sorun bir klasör oluşturarak giderilmiştir pip: bir dosya ile, pip.ini içinde C:\Users\<username>\AppData\Roaming\ örneğin:

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

İçinde yazdım:

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

Python'u yeniden başlattım ve sonra bu sitelere kalıcı olarak güvendim ve paketleri indirmek için kullandım.

AppData Klasörünü pencerelerde bulamazsanız, %appdata%dosya gezgini yazın ve görünmesi gerekir.


Garip bir şekilde bu benim Win10 makineme yardımcı olmuyor: /
mcandre

1
İşte, Windows 10 ortamında, Cmder konsol emülatörünü kullanarak. --trusted-host "'SSLError (SSLCertVerificationError (1,' [SSL: CERTIFICATE_VERIFY_FAILED] sertifika doğrulaması başarısız oldu: sertifika zincirinde kendinden imzalı sertifika" sorununu çözmek için kullanılır. Bugün çalışmayı durdurdu. Pip klasörünün bir kopyasını yerleştirdim ( . ../AppData/Roaming/ olarak) ../AppData/Local/ alınan ve tüm yine benim yerel piton dünya ile doğru çok teşekkürler!
IdusOrtus

1
Harika! Çok teşekkür ederim. --trusted-host artık benim için çalışmıyor, ancak çözümünüz yardımcı oluyor.
Alexander Prokofyev

1
Neden Python>
98Ed

Müthiş! GIT, şirketin proxy'si, SSL ile ilgili hatalar arıyordum ve sadece pip ile ilgiliydi. Teşekkürler ve umarım bu yorum buraya benim gibi şaşkın insanları getirir.
negas

41

Cevaplar oldukça benzer ve biraz kafa karıştırıcı. Benim durumumda, şirketimin ağındaki sertifikalar sorun oldu. Sorun kullanarak geçici çözüm bulmak mümkün:

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

Burada görüldüğü gibi . Ayrıntılı çıktı gerekli değilse -vvv argümanı atlanabilir


10
Sorunumu düzeltmek için sadece bir tane, teşekkürler.
Gringo Suave

Harika, benim için de çalışan tek kişi!
ethikz

Çalışıyor çünkü bugün normal SSL'yi çıkaran bazı proxy'lerin arkasındayım. Yetişkinler ağı çalıştırdığında normalde güvenilir ana bilgisayarları belirtmem gerekmez.
MrChrister

bu benim için de geçerli. yukarıdaki işe yaramadı
Srinath Ganesh

32

Kalıcı Düzeltme

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

Örneğin:

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

24

Bu sorunu bir kez ve herkes için çözmek için bir pip.confdosyanız olduğunu doğrulayabilirsiniz .

Belgelerepip.conf göre , olması gereken yer burası :

Unix'te varsayılan yapılandırma dosyası: $HOME/.config/pip/pip.confXDG_CONFIG_HOME ortam değişkenine saygı duyar.

MacOS'ta yapılandırma dosyası $HOME/Library/Application Support/pip/pip.confdizin $HOME/Library/Application Support/pipvarsa$HOME/.config/pip/pip.conf

Windows'ta yapılandırma dosyasıdır %APPDATA%\pip\pip.ini.

Bir sanal ağın içinde:

Unix ve macOS'ta dosya $VIRTUAL_ENV/pip.conf

Windows'ta dosya: %VIRTUAL_ENV%\pip.ini

Şöyle pip.confgörünmelisiniz:

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

pip install linkcheckerlinkcheckerBen pip.confdosyayı oluşturduktan sonra şikayet olmadan yüklü .


1
$ HOME / Kütüphane / Uygulama Destek / pip makinemde yok, alternatif bir konum var mı?
42shadow42

Bu pipkılavuzu yayınladığımdan beri kullanıcı kılavuzu güncellendi gibi görünüyor . MacOS için cevabımı güncelledim. Yardımcı olur mu?
Alex-Antoine Fortin

Win10 makinemdeki SSL hatasını etkilemiyor: /
mcandre

MacOSX'te sorunu çözmez.
MoDJ

MacOS kullanıyorum. Kullandığınız python3 kurduysanız brewo zaman emin olun kullandığınız pip3ve yaratmak pip.confolarak $HOME/.config/pip/pip.conf. Benim için çalıştım.
anu

23

Bulduğum en basit yol, https://www.digicert.com/digicert-root-certificates.htm#roots adresindeki DigiCert'ten "DigiCert Yüksek Güvence EV Kök CA'sını" indirmek ve kullanmaktır.

Adres çubuğundaki kilit simgesini tıklayarak sertifika yayıncısını doğrulamak için https://pypi.python.org/ adresini ziyaret edebilir veya openssl'yi kullanarak geek kredinizi artırabilirsiniz:

$ 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

Sertifika zincirindeki son CN değeri, indirmeniz gereken CA'nın adıdır.

Bir kerelik çaba için aşağıdakileri yapın:

  1. CRT'yi DigiCert'ten indirin
  2. CRT'yi PEM formatına dönüştürün
  3. PIP_CERT ortam değişkenini PEM dosyasının yoluna verme

(son satır, pip'i çalıştırmadan önce bash kabuğunu kullandığınızı varsayar).

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

Bunu yeniden kullanılabilir yapmak için, DigiCertHighAssuranceEVRootCA.crt dosyasını yaygın bir yere koyun ve PIP_CERT dosyasını ~ / .bashrc'nize uygun şekilde dışa aktarın.


4
Cevabınızı şirketimizin kök CA'sını PIP_CERT değişkenine vermek için kullandım ve son olarak 'pip --cert cert.pem' dahil olmak üzere her şeyi denedikten sonra ... sadece pip install paketi. BÜYÜK +1 - evet bir firewal / proxy / utm var.
Marlon

Mac Mojave'de bu hala benim için başarısız oldu. Tam olarak 3 adımı izledim ve hala "Hata: pip TLS / SSL gerektiren konumlarla yapılandırıldı, ancak Python'daki ssl modülü kullanılamıyor". Tüm -trusted-host ve --cert seçeneklerini denedim ve pip çalışmaz. Pip'i yükseltmeye çalıştım ve SSL hatasını aldım. Pip'i curl ile sıfırdan kurdum ve pip çalıştırdığımda hala hatayı alıyorum. Pip atmak ve conda için sopa zamanı :(
user1255933

21

Sorunu çözmek için aşağıdaki olasılıklara sahipsiniz CERTIFICATE_VERIFY_FAILED:

  • HTTPS yerine HTTP kullanın (örn. --index-url=http://pypi.python.org/simple/).
  • Alternatif CA paketini belirtmek için --cert <trusted.pem>veya CA_BUNDLEdeğişkeni kullanın .

    Örneğin, web tarayıcısından URL'nin başarısız olmasına gidebilir ve kök sertifikayı sisteminize alabilirsiniz.

  • python -c "import ssl; print(ssl.get_default_verify_paths())"Geçerli olanı kontrol etmek için çalıştırın (varsa doğrulayın).

  • OpenSSL, farklı sertifika veritabanı PEP-476'yı belirtmek için kullanılabilen bir çift ortama ( SSL_CERT_DIR, SSL_CERT_FILE) sahiptir .
  • --trusted-host <hostname>Ana bilgisayarı güvenilir olarak işaretlemek için kullanın .
  • Python Kullanımda verify=Falseiçin requests.get(bkz: SSL Sertifika Doğrulama ).
  • --proxy <proxy>Sertifika kontrollerinden kaçınmak için kullanın .

Daha fazla bilgi için: TLS / SSL soketi nesneleri için sarmalayıcı - Sertifikaları doğrulama .


İlk noktanızdan, pip komutuyla HTTP'yi nasıl belirtebilirim?
rayzinnz

1
@rayzinnz Örneği ekledim.
kenorb

16

Saati ve Tarihi Doğru Ayarla!

Benim için Raspberry Pi'de tarihimin ve saatimin yanlış yapılandırıldığı ortaya çıktı. Sonuç, https://files.pythonhosted.org/ sunucusu kullanılarak tüm SSL ve HTTPS bağlantılarının başarısız olmasıydı .

Bu şekilde güncelleyin:

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

Veya doğrudan örneğin Google'ın zamanıyla:

Referans: 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

Beni saatlerdir deli ediyor - bunun için teşekkürler. PI süresi benim için 10 gün kapalıydı, pip kurulumu sırasında her türlü hataya neden oldu (görünecekti).
SteveJ

13

Kısa bir süre önce, SSL trafiğini filtreleyebilmek için kendi Sertifika Yetkilisini kullanan şirketimin web içerik filtresi nedeniyle bu sorunla karşılaştım. PIP benim durumumda sistemin CA sertifikalarını kullanıyor gibi görünmüyor ve bahsettiğiniz hataya neden oluyor. PIP'yi 1.2.1 sürümüne düşürmek, daha sonra kendi sorun kümesini sundu, bu yüzden Python 3.4 ile birlikte gelen orijinal sürüme geri döndüm.

Geçici çözümüm oldukça basit: kullanın easy_install. Ya işaretleri (eski PIP sürümü gibi) kontrol etmiyor ya da benim için her zaman çalıştığı için sistem sertifikalarını kullanmayı biliyor ve hala easy_install ile kurulan paketleri kaldırmak için PIP kullanabilirim.

Bu işe yaramazsa ve sorunu olmayan bir ağa veya bilgisayara erişebiliyorsanız, her zaman kendi kişisel PyPI sunucunuzu kurabilirsiniz: ayna olmadan yerel kendi pypi depo dizini nasıl oluşturulur?

easy_installSon bir hendek çabası olarak kullanmayı deneyene kadar bunu neredeyse yaptım .


Burada da aynı sorun var. Diğer bir geçici çözüm, şirketin kök sertifikasını bir dosya olarak dışa aktarmak ve piponunla birlikte kullanmak olduğunu söylemektir --cert MyCompanyRootCA.crt.
glibdud

10

Https yerine http kullanarak SSL hatasını atlamayı deneyebilirsiniz. Tabii ki bu güvenlik açısından optimal değil , ama aceleniz varsa hile yapmalısınız:

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

1
Önerinizin çalışmasını bekliyordum. Crazily Birincisi de dahil olmak üzere aynı hataları aldımCould not fetch URL http://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
Jeremy Cook

3
Tamam, başka bir geçici çözüm burada mevcut tar.gz paketini indiriyor böylece pypi.python.org/pypi/LinkChecker/9.3 ile yüklemeden: pip LinkChecker-9.3.tar.gz yüklemek
Augusto Destrero

3
Ancak yüklemek istediğiniz paketin bağımlılıkları varsa, tüm bağımlılıkları da indirip yüklemeniz gerekir, eğer çoklarsa bu bir kabus haline gelebilir.
Augusto Destrero

1
Benim için, (benim durumum için pyserial) whl indirmek ve yüklemek zorunda kaldı. Bu tar.gz tarafından toplanmayan bağımlılıkları aldı ... Yani, belki whl @baxeico python -m pip install pyserial-3.4-py2.py3-none-any.whl çizgileri boyunca başka bir seçenektir bunların hiçbiri işe yaramadı: 1. --cert cacert.pem 2. şirket sertifikasını verme, PEM'e dönüştürme 3. cygwin'de easy_install 4. - trust-host
charo

1
Artık uzun ürünler 2017'den beri çalışıyor - HTTP erişimi tamamen kesildi. mail.python.org/pipermail/distutils-sig/2017-Ekim / Ekim
gbtimmon

8

Kullanılacak cevaplar

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

iş. Ancak, yönlendirmeler veya önbellek isabetinin olup olmadığını kontrol etmeniz gerekir pip. İle Windows 7'depip 9.0.1 , koşmak zorunda kaldım

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

Bunları ayrıntılı bayrağı ile bulabilirsiniz.


7

Easy_install ile pip 1.2.1'i kurdum ve benim durumumda paketleri kurabilen en son pip sürümüne (o zaman 6.0.7) yükselttim.

easy_install pip==1.2.1
pip install --upgrade pip

7

4 seçeneğiniz var:

Sertifikayı parametre olarak kullanma

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

Bir sertifikada sertifika kullanma pip.conf

Bu dosyayı oluştur:

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

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

ve şu satırları ekleyin:

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

Sertifikayı yoksayma ve HTTP kullanma

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

Bir pip.conf içinde sertifikayı yoksaymak ve HTTP kullanmak

Bu dosyayı oluştur:

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

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

ve şu satırları ekleyin:

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

Kaynak


6

Her şeyden önce,

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

benim için çalışmadı. CERTIFICATE_VERIFY_FAILED hatasını almaya devam ettim. Ancak, hata mesajlarında 'pypi.org' sitesine başvurduklarını fark ettim. Bu yüzden bunu pypi.python.org yerine güvenilir ana bilgisayar adı olarak kullandım. Neredeyse beni oraya getirdi; yük hala CERTIFICATE_VERIFY_FAILED ile başarısız oldu, ancak daha sonraki bir noktada. Başarısız olan web sitesine referans bularak, güvenilir bir ana bilgisayar olarak ekledim. Sonunda benim için işe yarayan şey:

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

5

Bu ilgili olup olmadığından emin değilim, ancak Anaconda3 / Library / bin Anaconda3 / DLL'lere bu dosyaları kopyalayarak giderilen benzer bir sorun vardı:

libcrypto-1_1-x64.dll

libssl-1_1-x64.dll


Anaconda 2019.03 ile <Anaconda3 klasörü> / Library / bin dizininden <Anaconda3> / DLLs libcrypto-1_1-x64.dll libcrypto-1_1-x64.pdb libssh2.dll libssl-1_1-x64.dll libssl- 1_1-x64.pdb Sonra bir ConnectTimeout hatası ekledim, bu yüzden güncellenmiş proxy yapılandırması .condarc
MordicusEtCubitus

İşler. Dostum sen GENIUS! Sadece bu hafife alınmış ve basit çözümü bulmak için forumları 1,5 saat boyunca dolaşıyorum.
ivan866

4

Aynı problemi denerken pip install ftputil64-bit Windows 7 Enterprise'da ActivePython 2.7.8, ActivePython 3.4.1 ve "stok" Python 3.4.2 ile . Tüm denemeler OP ile aynı hatalarla başarısız oldu.

Python 3.4.2 sorununa pip 1.2.1 sürümüne geçerek çalışıldı: easy_install pip==1.2.1(bkz. Https://stackoverflow.com/a/16370731/234235 ). Aynı düzeltme ActivePython 2.7.8 için de çalıştı.

Mart 2013'te bildirilen hata hala açık: https://github.com/pypa/pip/issues/829 .


Bu benim için de işe yaradı. Pip'in eski bir sürümüne geçmek için ilk etapta kötü bir fikir gibi görünse de, eski django paketleriyle uğraşıyordum, bu yüzden eski pip sürümü aslında diğer paketlerle eşleşiyordu.
mknaf

Sayı 829 şimdi kapandı.
Ortomala Lokni

3

Pypi.python.org yerine files.pythonhosted.org adresine ulaşmak istediğini görmek için --verbose seçeneğini kullanana kadar bu sayfadaki hiçbir şey benim için işe yaramadı:

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

Bu nedenle, --verbose seçeneği üzerinden gerçekten başarısız olduğu URL'yi kontrol edin.


2

Pip'imi kaldırarak ve pip'in eski sürümünü yükleyerek bu sorunu çözdüm: https://pypi.python.org/pypi/pip/1.2.1


Bu bağlantı soruyu cevaplayabilse de, cevabın önemli kısımlarını buraya eklemek ve bağlantıyı referans olarak sağlamak daha iyidir. Bağlantı verilen sayfa değişirse, yalnızca bağlantı yanıtları geçersiz olabilir. - Yorumdan
apomene

@apomene OP include the essential parts of the answer herebir ikili dosya bağlantısı olduğu için nasıl olması gerekiyor ...?
Thomas Ayoub

@ThomasAyoub, zaten bildiğinize inanıyorum, bir cevap sadece bağlantı yanıtı olarak işaretlendiğinde yukarıdaki mesajın otomatik olarak
SO'dan dolduğunu düşünüyorum

Soruma cevap vermeyen @apomene, hala OP'nin ne ekleyebileceğini / eklemesi gerektiğini göremiyorum?
Thomas Ayoub

1
@ThomasAyoub, Daha ayrıntılı olarak söylemek gerekirse, yorumum (SO), sorunun kısa ve sadece bağlantı olduğunu gösterir, yani bir yorum daha iyi olabilir. Niyetim, OP'nin bağlantıyı yeniden düzenleyen ayrıntılar eklemesi gerektiğini açıkça belirtmek değil, bunun neden soruya cevap verdiğiyle ilgili ayrıntıları belirtmekti.
apomene

2

"Https" yi yoksaymak için bunu deneyebilirsiniz:

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

1
hatta pip sürümü ile başka sorunlar varsa bunu deneyebilirsiniz pip install --trusted-host pypi.python.org --upgrade pip –
Smaillns

2

(Bir çözüm Windows için ) adlı bir dosya oluşturmak için pip.iniüzerine %AppData%\pip\klasöründe (o yoksa klasör oluşturmak) aşağıdaki ayrıntıları ve insert:

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

... ve sonra yükleme talimatını yürütebiliriz:

pip3 install PyQt5

Başka bir seçenek de proxy ve sertifika için argümanlar kullanarak paketi kurmaktır ...

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

Sertifika *.cerdosyalarını gerekli *.pemformata dönüştürmek için aşağıdaki talimatları uygulayın:

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

Umarım bu birine yardımcı olur!


1
Diğer işletim sistemleri için Alex-Antoine Fortin'in cevabına
Dinei

Proxy gerekmiyordu, sadece sertifika. Koştum; pip3.6 config set global.cert '/<path>/server.crt'
avatarofhope2

2

Benim durumumda SSL sertifikası şirketimin dahili CA'sı tarafından imzalanmıştı. Gibi geçici çözümleri kullanmak pip --certyardımcı olmadı, ancak aşağıdaki paket işe yaramadı:

pip install pip_system_certs

Bkz. Https://pypi.org/project/pip-system-certs/

Bu paket, pip'i ya da çalışma zamanında, varsayılan sistem deposundan (birlikte gelen sertifikalar ca yerine) sertifika kullanma isteğinde bulunur.

Bu, pip'in sistem kurulumunuz tarafından sertifika verilen sunuculara tls / ssl bağlantılarını doğrulamasına izin verecektir.


1
[SSL: CERTIFICATE_VERIFY_FAILED] hatasını geçersiz kılmak için pip_sysem_certs yüklemesi gerekiyor gibi görünüyor, sorun yüklemeye çalışırken [SSL: CERTIFICATE_VERIFY_FAILED] hatasını aldı ...
athos

Bu bir zamanda bir çözüm olabilir, ancak pip_system_certsPython ortamımı tamamen kırdı ve bu nedenle bu iyi bir cevap değil. Pip_system_certs kurmayın. Daha fazla bilgi için stackoverflow.com/questions/27835619/… adresine bakın .
h0r53

1

benim için bunun nedeni, daha önce proxy (kemancı), konsolu yeniden açmak veya sorunu yeniden başlatmak için yeniden başlatan komut dosyası çalıştırıyorum.


Fiddler, Araçlar | Seçenekler'de "HTTPS trafiğinin şifresini çöz" seçeneğini "... yalnızca tarayıcılardan" olarak ayarlayarak atlanabilir. Bu benim için sorunu düzeltti.
tephyr

1

Son zamanlarda aynı sorunu görsel stüdyo 2015 ile python 3.6'da gördüm. 2 gün geçirdikten sonra, çözümü ve benim için iyi çalışıyor.

Pip kullanarak veya görsel stüdyodan numpy yüklemeye çalışırken hatayla karşılaştım. Numpy toplama URL getirilemedi https://pypi.python.org/simple/numpy/ : SSL sertifikasını onaylarken bir sorun oluştu: [SSL: CERTIFICATE_VERIFY_FAILED] sertifika doğrulaması başarısız oldu (_ssl.c: 748) - atlama Sayı gereksinimini karşılayan bir sürüm bulunamadı (sürümlerden:) Numpy için eşleşen dağıtım bulunamadı

Çözüm :

Windows işletim sistemi için

  1. open -> "% appdata%" Varsa "pip" klasörü oluşturun.
  2. Pip klasöründe "pip.ini" dosyası oluşturun.
  3. Dosyayı düzenleyin ve
    [global]
    trust-host = pypi.python.org yazın. Dosyayı kaydedin ve kapatın. Şimdi pip / visual studio kullanarak iyi çalışır yükleyin.

1

Benim durumumda, Python'u minimal alp docker görüntüsünde çalıştırıyordum. Kök CA sertifikaları eksikti. Düzeltme:

apk update && apk add ca-certificates


1

Vaulstein cevabı bana yardımcı oldu.

Benim pc hiçbir yerde pip.ini dosyasını bulamadık. Aşağıdakiler de öyle.

  1. AppData klasörüne gittim. Komut istemini açarak appdata klasörünü alabilir ve echo% AppData% yazabilirsiniz.

Komut istemini kullanarak AppData konumu

Veya sadece Windows Gezgini'ne% AppData% yazın.

Windows Gezgini'ndeki AppData konumu

  1. Bu uygulama klasörü içinde pip adında bir klasör oluşturun.

  2. Az önce oluşturduğunuz pip klasöründe pip.ini adında basit bir metin dosyası oluşturun

  3. Seçtiğiniz basit bir düzenleyiciyi kullanarak bu dosyadaki aşağıdaki yapılandırma ayarlarını geçmiş.

pip.ini dosyası:

[list]
format=columns

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

Şimdi gitmek için iyi olmalısın.


1

Benzer bir sorunla karşılaştım. Benim için çalışan çözüm 1) python 2.7'yi kaldırın 2) python27 klasörünü silin 3) en son python'u yeniden yükleyin


0

Benim için önerilen yöntemlerin hiçbiri işe yaramadı - cert, HTTP, güvenilir ana bilgisayar kullanarak.

Benim durumumda paketin farklı bir sürümüne geçildi (bu örnekte paho-mqtt 1.3.0 yerine paho-mqtt 1.3.1).

Sorun bu paket sürümüne özgü gibi görünüyor.


0

Sisteminizde bazı sertifikalar eksikse bu sorunu yaşayabilirsiniz. Eg on opensuse install ca-certificate-mozilla

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.