“Pip install --cert” kullanarak dolaşabilir miyim?


21

İşte paketleri yüklerken pip için --cert bayrağını kullanmaktan kaçınabileceğim bir yol olup olmadığını anlamaya çalışıyorum. Proxy ile, mycert.crtdosyayı ekleyip /usr/local/share/ca-certificatesçalıştırmamıza rağmen, yalnızca bu bayrağı sağladığımda ihtiyacım olan paketleri indirmeme izin veren bazı sorunlar var sudo update-ca-certificates.

Gördüğüm mesajlara bir örnek:

$ pip install "virtualenv>=1.10.1"
Downloading/unpacking virtualenv>=1.10.1
  Could not fetch URL https://pypi.python.org/simple/virtualenv/: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed>
  Will skip URL https://pypi.python.org/simple/virtualenv/ when looking for download links for virtualenv>=1.10.1
  Could not fetch URL https://pypi.python.org/simple/: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed>
  Will skip URL https://pypi.python.org/simple/ when looking for download links for virtualenv>=1.10.1
  Cannot fetch index base URL https://pypi.python.org/simple/
  Could not fetch URL https://pypi.python.org/simple/virtualenv/: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed>
  Will skip URL https://pypi.python.org/simple/virtualenv/ when looking for download links for virtualenv>=1.10.1
  Could not find any downloads that satisfy the requirement virtualenv>=1.10.1
Cleaning up...
No distributions at all found for virtualenv>=1.10.1
Storing complete log in /tmp/tmpwW5qXD

Bu, aşağıdakiler kullanılarak çözülebilir:

pip install --cert=/usr/local/share/ca-certificates/mycert.crt

Ancak, bunu yapmak zorunda kalmamayı tercih ederim (diğer uygulamaların bu sorunla karşılaştığından eminim).

Linux Mint 15 kullanıyorum (daha önce Ubuntu 12.04'te çok benzer sorunlarım vardı), pip sürüm 1.4.1.


Bu, bu potansiyel yinelenen olabilir stackoverflow.com/questions/19377045/... ben politika kümeleştirme vb ne olduğundan emin değilim ..
Ryan

Yanıtlar:


9

Bunu, Windows içinde $HOME/.pip/pip.confveya %APPDATA%\pip\pip.iniüzerinde bulunan pip yapılandırma dosyası aracılığıyla ayarlayabilirsiniz :

[global]
cert = /usr/local/share/ca-certificate/mycert.crt

Bu dosya temelde pip tarafından kullanılan tüm bayrakları ayarlamanıza izin verir. Belgelerin tamamı https://pip.pypa.io/en/latest/user_guide/#configuration adresindedir.


2
Orijinal yazıma yaptığınız yorumun gerçek cevaba yol açtığını düşünüyorum, yani pip sistem sertifikalarını kullanmaz. İş ve ev ortamları (VPN üzerinden) arasında geçiş yaptığımda sorunla karşılaşsa da bu iyi bir çözümdür. Yine de sertifika ile ilgili bir sorun daha çözümdür.
Ian Lee

1
Yapılandırma bağlantısı güncellendi: pip.pypa.io/tr/latest/user_guide.html#configuration
sequoia

5

Benim için, yapılandırma dosyası geçici çözümleri işe yaramadı. Ben kullanıyorum pip 1.5.4 üzerinde Ubuntu 14.04

Sonunda benim için işe yarayan ilk önce sertifikayı sisteme kurmaktır (benim için ubuntu'da bu olurdu)

sudo cp ~/my_cert.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

Önceki paket dosyasını otomatik olarak günceller (en altta kontrol ederek /etc/ssl/certs/ca-certificates.crtşimdi aynı sertifikayı görmelisiniz my_cert.crt)

Şimdi bu yolu kullanın PIP_CERT. Ve benim ekle .bashrc:

echo export PIP_CERT=/etc/ssl/certs/ca-certificates.crt >> ~/.bashrc

YASAL UYARI : Bu cevabı zaten SO'ya gönderdim (yukarıdaki 'sonunda yinelenen bağlantıdaki ile aynı cevap'), ama başlangıçta diğerini bulamadım (sonunda yinelenen cevap) ... yani benim gibi biri önce buraya gelirse, o zaman bu yardımcı olabilir.

Belki aynı cevabı iki kez, biri SO'da diğeri süper kullanıcıda olmak için iki tür kural koyuyorum. Eğer öyleyse, bunun için üzgünüm.


2

Bu, config dosyasının nerede yaşadığını bilmeden benim için çalıştı:

python -m pip config set global.cert C:\\Path\\cert.crt

Ben ile bulabileceğiniz pip sürüm 10+, ihtiyacınız olduğuna inanıyorum:

 python -m pip --version

Daha sonra config set komutunun çıktısı, size kolaylık sağlamak için config dosyasının adını verir

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.