होमबॉव अजगर 2.7 स्थापित पर काम नहीं कर रहा पाइप


15

मैंने होमब्रे का उपयोग करके अजगर को स्थापित किया है और मैं बैश से पाइप का आह्वान नहीं कर सकता। मैंने अपने .bash_profile को / usr / local / bin / python और / usr local / share / python को शामिल करने के लिए संशोधित करने का प्रयास किया है।

जब मैं बैश कमांड का उपयोग करता हूं:

find / -name 'pip'

केवल परिणाम मुझे मिल रहे हैं:

/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip
/Users/Ivan/Library/Caches/pip
/Users/Ivan/Library/Logs/pip
/usr/local/Cellar/python/2.7.9/libexec/pip
/usr/local/Cellar/python/2.7.9/libexec/pip/pip
/usr/local/lib/python2.7/site-packages/pip

जिनमें से कोई भी एक निष्पादन योग्य नहीं है।

मुझे वास्तव में नहीं पता है कि मेरे $ PATH को कहां इंगित किया जाए क्योंकि मुझे पाइप निष्पादन योग्य नहीं मिल सकता है। जब मैं खुला

/usr/local/lib/python2.7/site-packages/pip

या

/usr/local/Cellar/python/2.7.9/libexec/pip/pip

मुझे निम्नलिखित फाइलें मिलीं:

__init__.py         commands            operations
__init__.pyc        compat              pep425tags.py
__main__.py         download.py         pep425tags.pyc
__main__.pyc        download.pyc        req
_vendor             exceptions.py       status_codes.py
basecommand.py      exceptions.pyc      status_codes.pyc
basecommand.pyc     index.py            utils
baseparser.py       index.pyc           vcs
baseparser.pyc      locations.py        wheel.py
cmdoptions.py       locations.pyc       wheel.pyc
cmdoptions.pyc      models

जिनमें से कोई भी एक निष्पादन योग्य नहीं है।

मैं अपने से अधिक अनुभव वाले किसी की मदद की सराहना करूंगा।

संपादित करें: मैंने मार्को द्वारा सुझाए गए चरणों की कोशिश की:

यहाँ चरणों के परिणाम हैं:

  1. इको $ PATH कुछ निर्देशिकाओं को दिखाता है: / usr / local / bin: / usr / local / mysql / bin: / usr / bin: / usr / sbin: / usbin / usr / लोकल / बिन: / usr / texbin: / opt / X11 / बिन: / usr / स्थानीय / mysql / बिन

  2. कौन-सा अजगर रिटर्न करता है: / usr / स्थानीय / बिन / अजगर / usr / स्थानीय / बिन / अजगर

किस -a पाइप के लिए कुछ भी नहीं लौटाया जाता है

  1. जो अजगर लौटता है: / usr / स्थानीय / बिन / अजगर

किस पाइप के लिए कुछ भी नहीं लौटाया जाता है

  1. ls -l $ (जो अजगर) एक ही निर्देशिका देता है: lrwxr-xr-x 1 इवान व्यवस्थापक 33 17 मई 08:59 / usr / स्थानीय / बिन / अजगर -> ../Cellar/python/2.7.9/bin/ अजगर

ls -l $ (जो पिप) कई रिटर्न देता है, जिसमें अजगर फाइलें भी शामिल हैं, जो मैंने अपने मूल पोस्ट में दिखाया था

जवाबों:


19

आम तौर पर, homebrewएक स्थापित हो जाएगा formulaमें /usr/local/Cellar/formulaऔर फिर पर एक लिंक जगह /usr/local/bin/formula

अपने स्थापित फ़ार्मुलों का उपयोग करने के लिए, सुनिश्चित करें कि /usr/local/binआप में है $PATH$PATHटाइप करके दिखाओ

echo $PATH

यदि आप /usr/local/binमें नहीं है $PATH, तो इस लाइन को अपनी ~/.profileफ़ाइल के अंत में रखें ।

export PATH="/usr/local/bin:$PATH"

अब, जांचें कि pythonsआपके OSX पर क्या लिखा है:

which -a python

वहाँ एक अजगर पाया जाना चाहिए /usr/bin/(एप्पल अजगर) और एक /usr/local/bin/है जिस पर Homebrew अजगर है।

which python

आपको दिखाएगा, कि आपके अंदर कौन सा अजगर सबसे पहले पाया जाता है $PATH और जब आप आह्वान करते हैं, तो इसे निष्पादित किया जाएगा python

यदि आप जानना चाहते हैं, तो निष्पादन योग्य कहां है, इसे टाइप करके दिखाएं

ls -l $(which python)

यह इस तरह दिख सकता है: lrwxr-xr-x 1 रूट व्हील 68 7 माई 13:22 अजगर -> / usr / स्थानीय / बिन / अजगर

यह भी काम करेगा pip

यदि आप इस चरणों के परिणाम दिखाते हैं, तो हम शायद आपकी बहुत आसान मदद कर सकते हैं।

-- अपडेट करें --

से आपने /usr/local/bin/pythonलिंक किया है /usr/local/Cellar/python/2.7.9/bin/python। -> brew install pythonकाम किया।

शो, यदि pipटाइप करके इंस्टॉल किया गया हो

brew list python | grep pip

तुम्हे देखना चाहिए

/usr/local/Cellar/python/2.7.9/bin/pip

यदि नहीं, तो जांच करें, यदि लिंक हैं, जो नहीं किए गए हैं brew install। आपको कुछ इस तरह बताया:

"Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local"

लिंक को बाध्य करने और सभी परस्पर विरोधी फ़ाइलों को अधिलेखित करने के लिए:

brew link --overwrite python

हटाई जाने वाली सभी फ़ाइलों को सूचीबद्ध करने के लिए:

brew link --overwrite --dry-run python

** कोई मानक Apple /usr/bin/python**

से लिंक /usr/local/Cellar/python/2.7.9/bin/pythonकरें/usr/bin/python

ln -s /usr/local/Cellar/python/2.7.9/bin/python /usr/bin/python

शुरुआत के साथ सभी अजगर लिपियों के लिए यह आवश्यक है #!/usr/bin/python। Especialy easy_installअसफल हो जायेगी, अगर लिंक वहाँ नहीं है।

अब, आप चलाने में सक्षम हैं

easy_install pip

आशा है, आप प्रगति कर रहे हैं


मार्को, आपके उत्तर के लिए धन्यवाद! कृपया मेरे मूल प्रश्न को चरणों के परिणामों के लिए देखें - मैंने उन्हें जोड़ा है
यंगपैडवन

@YoungPadawan लगता है कि आपके पास Apple मानक नहीं है /usr/bin/python। यह अच्छा नहीं है, क्योंकि कई पायथन लिपियों की शुरुआत होती है #!/usr/bin/python। यदि कोई अजगर नहीं है, तो आपको अपने जैसे त्रुटि संदेश मिलते हैं। उपयोग brew link --dry-run pythonकरने के लिए जाँच करें कि आपके लिंक में क्या बदला जाएगा brew link --overwrite python। हम आपके पाइप को चालू कर देंगे ;-)
मार्को एम। वॉन हेगन

brew link --overwrite --dry-run pythonदेखने के लिए उपयोग करें कि कौन सी फाइलें अधिलेखित की जाएंगी।
मार्को एम। वॉन हेगन

1
मैंने आपके उत्तर पर टिक कर दिया है क्योंकि इसने मुझे सही रास्ता दिखाया है, लेकिन अंत में यह एक अनुमति मुद्दा था। स्थापित करने के बाद मुझे एक Warning: The post-install step did not complete successfully You can try again using brew postinstall python. I tried the काढ़ा हुआ पोस्टपाइंट python` कमांड मिला और इसने मुझे कुछ फाइलों तक पहुंचा दिया, जिनकी मुझे पहुंच नहीं थी, जिन्हें मैंने जाना। अब मैं पाइप का उपयोग कर सकता हूं! धन्यवाद फिर से
यंगपैडवन

1
मेरे मामले में समस्या के The post-install step did not complete successfullyकारण था error: could not delete '/usr/local/lib/python2.7/site-packages/pip/__init__.py': Permission denied। मैन्युअल रूप से उस फ़ाइल को हटाकर फिर से चल रहा brew postinstall pythonहै।
डेविड पर्सहाउस

5

यदि काढ़ा आपके अजगर स्थापित करने का प्रबंधन कर रहा है और पाइप अब सहानुभूति नहीं है (यानी आप "जो पाइप" टाइप करते हैं और कोई परिणाम नहीं मिलता है) अपने घर की निर्देशिका से यह प्रयास करें:

brew unlink python && brew link python

निश्चित नहीं है कि क्या पुरानी पद्धति कोई और काम करती है (यह मेरी मशीन पर नहीं थी)।

अब पुष्टि करें कि यह वास्तव में आपके 2.7 इंस्टॉलेशन की ओर इशारा करता है pip --version(यह डायरेक्टरी आउटपुट में पायथन प्रमुख संस्करण को सूचीबद्ध करेगा)।


4

वास्तव में मूल प्रश्न का उत्तर नहीं है, लेकिन अगर कोई भी यहां समाप्त होता है क्योंकि उनके होमब्रेव-इंस्टॉल python/pipअब काम नहीं कर रहे हैं (यानी pythonसिस्टम अजगर को इंगित करता है और pipनहीं मिला है) तो इसका कारण हाल ही में (गर्मियों 2017) में बदल सकता है होमब्रे ने अजगर को स्थापित और लिंक किया।

इसका समाधान निम्नलिखित को ~/.bash_profileऔर / या में जोड़ना है ~/.zshrc:

export PATH="$(brew --prefix)/opt/python/libexec/bin:$PATH"

यह pythonअजगर के काढ़ा संस्करण को इंगित करेगा और आपको भी देगा pip। इस जानकारी के तहत brew info pythonऔर https://github.com/Homebrew/homebrew-core/issues/15746 के तहत कैविट्स अनुभाग देखें


2

डिफ़ॉल्ट रूप से Homebrew द्वारा पाइप प्रदान करता है brew install python:। हालाँकि आपके पास अपने मैक पर दो पायथन स्थापित होंगे, आप वैकल्पिक रूप से इसके माध्यम से स्थापित कर सकते हैं:

sudo easy_install pip

यह सत्यापित करने के लिए कि आपके पायथन पैकेज में कौन सी फाइलें स्थापित हैं, कोशिश करें:

$ brew list python
/usr/local/Cellar/python/2.7.9/bin/pip
/usr/local/Cellar/python/2.7.9/bin/pip2
/usr/local/Cellar/python/2.7.9/bin/pip2.7
...

जिसमें सम्‍मिलित होना चाहिए pip

स्थापना के बाद आपको अपने सूत्र की इंस्टॉल की गई फ़ाइलों को सिमिलिंक करना चाहिए:

brew link python

जो सही प्रतीकात्मक लिंक बनाना चाहिए (जैसे कि /usr/local/bin/pipआपकी ओर इशारा करते हुए Cellar/python/2.?.?/bin/pip)

यदि आपने अनुमति जारी कर दी है, तो आप इसे ठीक कर सकते हैं:

sudo chgrp -R admin /usr/local /Library/Caches/Homebrew
sudo chmod -R g+w /usr/local /Library/Caches/Homebrew

और सुनिश्चित करें कि आपका उपयोगकर्ता व्यवस्थापक समूह ( id -Gn $USER) में है।

अनुमतियाँ ठीक करने के बाद, कमांड sudoका उपयोग करते समय उपयोग न करें brew

फिर इसे फिर से लिंक करें:

brew unlink python && brew link python

ड्राई-रन का परीक्षण करने के लिए, अनलिंक करें और चलाएं: brew link -n pythonफ़ाइलों के लिंक देखने के लिए जो brewलिंक करेंगे।

लिंकिंग सफल होने के बाद, सुनिश्चित करें कि आपके PATH सिस्टम वैरिएबल में है /usr/local, यदि नहीं, तो जोड़ें:

export PATH=/usr/local/sbin:/usr/local/bin:$PATH

आपकी ~/.bashrcफ़ाइल पर।

सफल होने पर, आपका pipकाम अभी होना चाहिए।


आपके उत्तर kenorb के लिए धन्यवाद! समस्या का हिस्सा यह है कि easy_install मेरे लिए भी काम नहीं करता है। बाश में मुझे मिलता है: -बैश: / usr / bin / easy_install: / usr / bin / python: खराब दुभाषिया: ऐसी कोई फ़ाइल या निर्देशिका नहीं
YoungPadawan

इसका मतलब है कि आपने /usr/bin/pythonइंस्टॉल नहीं किया है (जो सामान्य रूप से ओएस एक्स के साथ प्रदान किया जाना चाहिए)। तो कृपया सुझाव के अनुसार प्रयास करें, जो है: brew install python && brew link pythonफिर /usr/local/binअपने में जोड़ें PATH
kenorb

मुझे नहीं लगता कि brew install python && brew link pythonवह अजगर को अंदर डाल रहा है /usr/bin। मैं इसे देख रहा हूं usr/local/bin, लेकिन मैं वहां पाइप करने के लिए सिम्लिंक नहीं देख रहा हूं। मैंने अनलिंक किया है और साथ ही अजगर को जोड़ा है, और कुछ भी नहीं बदलता है। ऐसा लगता है कि शराब की
भठ्ठी

@YoungPadawan brewसाथ कुछ भी नहीं है /usr/bin, लेकिन /usr/local/bin। कोशिश करें: brew unlink pythonऔर ड्राई-रन करें: brew link -n pythonउन सभी फाइलों को सूचीबद्ध करने के लिए जिन्हें लिंक किया जाना चाहिए और अगर pipहै तो जांच लें । यदि हाँ, तो बिना फिर से दौड़ें -n
kenorb

धन्यवाद Kenorb, मैं एक समाधान मिल गया है। अंत में यह अनुमतियों के कारण एक दोषपूर्ण स्थापित था। मैंने कुछ फ़ाइलों पर अनुमतियों को संशोधित किया है जो काढ़ा विरोधाभासी था और स्थापना को फिर से चलाया और अब सब कुछ ठीक है। ऊपर दिए गए प्रश्न के लिए एक टिप्पणी में अधिक विवरण हैं। आपके उत्तर के लिए फिर से धन्यवाद, यह वास्तव में मुझे हल करने में मददगार था।
यंगपैडवन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.