पाइथन में एसएसएल मॉड्यूल उपलब्ध नहीं है (OSX पर)


21

मैं pip installOSX 10.13 पर एक virtualenv में चलने में परेशानी हो रही है । मैं पहले ही दौड़ चुका हूं brew install opensslऔर राह /usr/local/include/opensslइशारा करती है ../opt/openssl/include/openssl। क्या कोई जानता है कि इसे कैसे ठीक करें? मेरे द्वारा पुन: pythonउपयोग करने के बाद यह होने लगा brew install

पाइप को उन स्थानों से कॉन्फ़िगर किया गया है, जिन्हें टीएलएस / एसएसएल की आवश्यकता होती है, हालांकि पायथन में एसएसएल मॉड्यूल उपलब्ध नहीं है। तकिया इकट्ठा करने से URL https://pypi.python.org/simple/pillow/ नहीं आ सकता: ssl प्रमाणपत्र की पुष्टि करने में समस्या थी: HTTPS URL से कनेक्ट नहीं हो सकता क्योंकि SSL मॉड्यूल उपलब्ध नहीं है। - लंघन एक ऐसा संस्करण नहीं खोज सका जो आवश्यकता को संतुष्ट करता हो पिलो (संस्करणों से:) पिलो के लिए कोई मिलान वितरण नहीं मिला

अद्यतन: यहाँ कुछ और जानकारी है:

 which python
/usr/local/opt/python/libexec/bin/python
 which pip
/usr/local/opt/python/libexec/bin/pip
 python --version
Python 3.7.4
 pip --version
pip 19.1.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
 brew info python
python: stable 3.7.4 (bottled), HEAD
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python/3.6.5_1 (4,795 files, 100.0MB)
  Poured from bottle on 2019-10-08 at 14:39:37
/usr/local/Cellar/python/3.7.4_1 (3,903 files, 60.6MB) *
  Poured from bottle on 2019-10-08 at 14:37:10
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/python.rb

हां, मेरे पास 3.6.5_1 और 3.7.4_1 दोनों हैं क्योंकि मुझे कई बार दोनों के बीच स्विच करना पड़ सकता है।

 brew unlink openssl
Unlinking /usr/local/Cellar/openssl/1.0.2s... 0 symlinks removed

के उत्पादन में दिखा के साथ शुरू करो which python, which pip, python --version, pip --version। फिर, पिछली बार जब मैंने जाँच की थी, opensslकेग-ओनली थी, इसलिए /usr/local/include/opensslउपस्थित नहीं होना चाहिए, भागना चाहिए brew unlink openssl
ivan_pozdeev

@ivan_pozdeev ज़रूर, मैंने आउटपुट जोड़ा है। मैंने पहले ही कोशिश की है brew unlink
जॉन एम।

जवाबों:


53

sslमॉड्यूल के साथ-साथ उसके अंतर्निहित सी विस्तार प्रकट होता है का एक हिस्सा होने के लिए pythonसूत्र:

Mac-Admin:~ admin$ python3
Python 3.7.4 (default, Sep  7 2019, 18:27:02) 
[Clang 10.0.1 (clang-1001.0.46.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>> ssl
<module 'ssl' from '/usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py'>
>>> import _ssl
>>> _ssl
<module '_ssl' from '/usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload/_ssl.cpython-37m-darwin.so'>

इसलिए यह सबसे अधिक संभवतया गायब हो रहा है जिसका अर्थ है पैकेज स्थापना भ्रष्टाचार जिसे brew reinstall pythonठीक करना चाहिए।


यह भी ध्यान दें कि जबकि Homebrew कई संस्करणों को सह-अस्तित्व की अनुमति देता है, इसके इंस्टॉलेशन लॉजिक को वैकल्पिक संस्करणों को चालू रखने के लिए तब तक डिज़ाइन नहीं किया जाता है जब तक कि उन्हें एक संस्करण सूत्र के माध्यम से स्थापित नहीं किया जाता है (और नियमित रूप से पुराने संस्करणों को हटा देता है brew cleanup)।

इसलिए यदि आप पायथन संस्करणों के बीच नियमित रूप से स्विच करने की आवश्यकता है pyenv(या इसके माध्यम से उपलब्ध brew) का उपयोग करने पर विचार करें - या कुछ 3-पार्टी टैप जो इसके लिए संस्करण सूत्र प्रदान करता है।


8
धन्यवाद! brew reinstallवास्तव में इसे ठीक करता है।
जॉन एम।

11

मैक OSX कैटालिना (और OSX Mojave पर एक ही मुद्दा) पायनेव

किसी को भी इस विषय को खोजने के लिए, मुझे एक ही प्रस्तुत करने की समस्या थी, लेकिन पायथन ने होमब्रे और पाइनेव दोनों के माध्यम से स्थापित किया था !! बेहतर होगा कि (IMO) आसानी से संस्करणों को प्रबंधित करने के लिए पाइनेव का उपयोग करें। जैसा कि उनके उत्तर में @ivan_pozdeev ने उल्लेख किया है, लेकिन यहां कुछ विवरण आपको चाहिए।

यदि आपकी स्थिति समान है, तो उपरोक्त समाधानों में से कोई भी चीज़ों को सही सेट करने के लिए पर्याप्त नहीं होगा। आंशिक रूप से मुझे यहां पाइनेव से संबंधित उत्तर में मदद मिली थी: https://stackoverflow.com/a/51797298/3084820 मैं भी pyenv-virtualenvस्थापित हुआ है , इसलिए इसका उल्लेख करते हुए, साथ ही साथ इन दोनों का एक साथ उपयोग करना सामान्य है।

मैंने आखिरकार इस मुद्दे को हल करने के लिए निम्नलिखित कदम उठाए:

brew uninstall python
rm -rf $(pyenv root)
brew uninstall pyenv-virtualenv   # you may not have this installed, but...
brew uninstall pyenv

अब, Pyenv के साथ प्रबंधनीय स्वच्छ स्थापना के लिए:

brew install pyenv
pyenv install 3.6.10  (or whatever version you want)

इसने मुझे पाइथन 3.6.10 का एक साफ, काम करने वाला इंस्टॉल दिया, और अगर मुझे चाहिए या चाहिए, तो मैं एक अलग संस्करण स्थापित कर सकता था और पाइनेव के बीच स्विच कर सकता था।


मुझे लगता है कि मैं उसी स्थिति में हूं। अब, क्या यह आवश्यक है brew uninstall pythonयदि आप सिर्फ उपयोग कर रहे हैं pyenv? या इससे कहीं विरोध पैदा होता है? इसके अलावा, मैंने कोशिश की brew uninstall pythonऔर उसने मुझे "त्रुटि: त्रुटि: / स्थापना रद्द करने से इंकार कर दिया /usr/local/Cellar/python/3.7.7 क्योंकि यह [अन्य संकुल का एक गुच्छा]" आवश्यक है। के सुझाव के साथ आगे बढ़ना शायद सुरक्षित है brew uninstall --ignore-dependencies python, लेकिन मैं फिर भी संकोच कर रहा हूं। मुझे याद नहीं है कि मैंने अजगर के इस संस्करण का उपयोग कैसे किया, और अगर किसी तरह मैं अभी भी इसका उपयोग कर रहा हूं।
एंटोनी

@ एंटोनी, मेरा मानना ​​है कि मैं इसे पीयन में पुन: स्थापित करने के बिना पायथन के साथ अजगर को ठीक करने में सक्षम था। लेकिन मैंने pyenv के साथ एक विशिष्ट अजगर संस्करण को फिर से स्थापित किया: pyenv uninstall 3.6.6 pyenv install 3.6.6 pyenv global 3.6.6
wronk

@ आपके इनपुट के लिए धन्यवाद धन्यवाद! ऐसा लगता है (लेकिन मुझे पूरी तरह से यकीन नहीं है) कि समस्या है कि मैं किसी भी तरह से चला रहा था brew uninstall python भले ही यह त्रुटि फेंक दिया कि यह अजगर की स्थापना रद्द नहीं करेगा। हो सकता है कि कमांड ने कुछ प्रारंभिक सफाई वैसे भी की हो, यह तय करने से पहले कि यह अजगर की स्थापना रद्द करने से आगे नहीं बढ़ेगा? या शायद कुछ और है जो मैंने किया। किसी भी दर पर, मैं अभी भी अजगर के दूसरे संस्करण के साथ एक अलग मुद्दा बना रहा हूं, और मुझे लगता है कि जैसा कि आप सुझाव देते हैं, मैं उस संस्करण को फिर से स्थापित करूंगा।
एंटोनी

2

मुझे कैटालिना के साथ भी ऐसी ही समस्या थी और काम करने के लिए होमब्रेव फिर से नहीं मिला। मैंने कई कोशिश की।

brew reinstall openssl
brew reinstall pyenv
brew reinstall pyenv-virtualenv

अंततः केवल एक चीज जो मेरे लिए काम करती थी, वह थी पूरी तरह से और साथ ही अंतर्निहित पायथन इंस्टॉलेशन को पूरी तरह से अनइंस्टॉल करना और फिर सब कुछ पुनः स्थापित करना।

brew uninstall pyenv pyenv-virtualenv
brew install pyenv pyenv-virtualenv
pyenv uninstall 3.x.x
pyenv install 3.x.x
pip install -r requirements.txt

करता है brew uninstall pyenv pyenv-virtualenvके रूप में अपने द्वारा सुझाए गए सभी आभासी वातावरण को दूर नहीं pyenv uninstall 3.x.x?
एंटोनी

0

मेरे पास एक ही मुद्दा है, लेकिन पुनर्स्थापना ने मेरे लिए काम नहीं किया है।

⇒ जो python3
/ usr / local / bin / python3 blamb @ cha-109164-l: / usr / स्थानीय / बिन | मास्टरon

⇒ कौन सा pip3 / usr / स्थानीय / बिन / pip3 blamb @ cha-109164-l: / usr / स्थानीय / बिन | मास्टर /

⇒ pip3 -V पाइप 19.3.1 से /usr/local/lib/python3.7/site-packages/pip (अजगर 3.7) blamb @ cha-109164-l: / usr / स्थानीय / बिन | मास्टर⚡ |

⇒ पायथन 3 -वी पायथन 3.7.0 ब्लैंब @ चा-109164-एल: / यूएसआर / एल


2
अतिप्रवाह ढेर करने के लिए आपका स्वागत है! आप अपने कोड को प्रारूपित करने के लिए अपने उत्तर को संपादित करना चाह सकते हैं। उदाहरण के लिए, आपकी कोड लाइन से पहले 4 रिक्त स्थान इसे एक कोड के रूप में चिह्नित करेंगे। आप अपने प्रश्नों और उत्तरों को ठीक से कैसे चिह्नित करें, यह समझने के लिए फॉर्मेटिंग मदद को बेहतर ढंग से पढ़ना चाहते हैं । यदि आपके पास अच्छी तरह से स्वरूपित हैं, तो आपके पास उनके साथ बेहतर अवसर होगा।
rvbarreto

0

मेरे पास एक ही त्रुटि थी और यह इसलिए था क्योंकि मैं अपने pyenv वातावरण में अजगर 3.6.5 का उपयोग कर रहा था। नीचे के उपचार ने मेरे लिए काम किया।

pyenv install 3.7.3
pyenv global 3.7.3

0

मेरे पास भी यह त्रुटि थी और मैंने इसे ठीक कर लिया brew update && brew upgrade


0

Pyenv और python को फिर से स्थापित करने के लिए मेरा फिक्स है

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