क्या मैं "पाइप इंस्टॉल --cert" का उपयोग कर के आसपास पहुँच सकता हूँ?


21

यह पता लगाने के लिए कि क्या कोई तरीका है जिससे मैं काम पर पैकेज स्थापित करते समय पाइप को thecert ध्वज का उपयोग करने से बच सकता हूं। प्रॉक्सी के साथ कुछ समस्या है जो मुझे केवल उस पैकेज को डाउनलोड करने की अनुमति देती है, जब मुझे mycert.crtफ़ाइल को जोड़ने /usr/local/share/ca-certificatesऔर चलाने के बावजूद, उस ध्वज को प्रदान करने की आवश्यकता होती है sudo update-ca-certificates

मेरे द्वारा देखे जा रहे संदेशों का एक उदाहरण है:

$ 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

इसका उपयोग करने के बजाय इसके साथ हल किया जा सकता है:

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

हालाँकि, मैं ऐसा नहीं करना पसंद करूँगा (जैसा कि मुझे यकीन है कि अन्य अनुप्रयोग इस मुद्दे से टकराएंगे)।

मैं लिनक्स मिंट 15 चला रहा हूं (हालांकि मैंने पहले उबंटू 12.04 पर बहुत ही समान मुद्दे थे), पाइप संस्करण 1.4.1।


यह इस stackoverflow.com/questions/19377045/… का एक संभावित डुप्लिकेट हो सकता है .. मुझे यकीन नहीं है कि नीति आदि को एकत्र करने के लिए क्या है
रयान

जवाबों:


9

आप पाइप कॉन्फ़िगरेशन फ़ाइल के माध्यम से सेट कर सकते हैं, जो कि विंडोज में $HOME/.pip/pip.confया उस %APPDATA%\pip\pip.iniपर है:

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

यह फ़ाइल आपको मूल रूप से सभी झंडे सेट करने देती है जो पाइप द्वारा उपयोग किए जाते हैं। पूर्ण प्रलेखन https://pip.pypa.io/en/latest/user_guide/#configuration पर है


2
मुझे लगता है कि मेरी मूल पोस्ट पर आपकी टिप्पणी वास्तविक उत्तर की ओर ले जाती है, जो यह है कि पाइप सिस्टम सेर्ट्स का उपयोग नहीं करता है। यह एक अच्छा समाधान है, हालांकि यह उन मुद्दों पर चलता है जब मैं काम और घर के वातावरण (वीपीएन पर) के बीच स्विच कर रहा हूं। हालांकि समाधान की तुलना में प्रमाण के साथ अधिक समस्या।
इयान ली

1
कॉन्फ़िगरेशन के लिए अद्यतन लिंक: pip.pypa.io/en/latest/user_guide.html#configuration
sequoia

5

मेरे लिए, गैर-फ़ाइल वर्कअराउंड के गैर ने काम किया। मैं Ubuntu 14.04 पर 1.5.4 पाइप का उपयोग कर रहा हूं

आखिरकार मेरे लिए क्या काम किया गया है पहले सिस्टम पर प्रमाण पत्र स्थापित करना (मेरे लिए उबंटू पर यह होगा)

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

पिछला स्वचालित रूप से बंडल फ़ाइल को अपडेट करता है ( /etc/ssl/certs/ca-certificates.crtआप के नीचे की जाँच अब उसी प्रमाणपत्र को देखनी चाहिए my_cert.crt)

अब उस पथ का उपयोग करें PIP_CERT। और इसे मेरे लिए जोड़ें .bashrc:

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

अस्वीकरण : मैं पहले से ही एसओ ('अंत में ऊपर लिंक दोहराया गया' के रूप में एक ही जवाब) में इस जवाब पोस्ट किया है, लेकिन शुरुआत में मैं अन्य (अंततः दोहराया जवाब) नहीं मिला ... तो अगर मेरे जैसे किसी को यहाँ पहले हो जाता है, तो यह मदद कर सकता है।

शायद मैं एक ही उत्तर को दो बार पोस्ट करने के लिए कुछ प्रकार के नियम तोड़ रहा हूं, एक एसओ में और दूसरा सुपरसुसर में। यदि हां, तो इसके बारे में क्षमा करें।


2

यह मेरे लिए काम करने की जरूरत के बिना पता करने के लिए कि विन्यास फाइल कहाँ रहती है:

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

मेरा मानना ​​है कि आपको पाइप संस्करण 10+ की आवश्यकता है, जिसे आप पा सकते हैं:

 python -m pip --version

Config सेट कमांड का आउटपुट तो आपकी सुविधा के लिए config फाइल का नाम आउटपुट करता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.