2015-11-20 5 views
5

जैसा कि हम सभी जानते हैं, मैक ओएस अपने स्वयं के पायथन पूर्व स्थापित करता है।एकाधिक पायथन इंस्टॉलेशन और पाइप, दोस्त, मेरी साइट-पैकेज कहां है?

अनुशंसा उस अकेले छोड़ने और सिस्टम में ताजा पायथन स्थापित करने के लिए होमब्रू का उपयोग करने के लिए प्रतीत होती है।

मेरा मुद्दा यह है कि होमब्री का उपयोग करके पायथन (और पीआईपी) स्थापित करने के बाद, पीआईपी मैक ओएस साइट-पैकेज में अपने आप के बजाय पैकेज स्थापित कर रहा है। मैंने पुष्टि की है मैं "homebrew" पिप चला रहा हूँ:

$ which pip 
/usr/local/bin/pip 

लेकिन तब जब मैं कुछ से मैं यह कर सकते हैं स्थापित रंज इसे स्थापित किया गया है:

/lib/python2.7/site-packages 

पिप /usr/local/lib/python2.7/site-packages पर स्थापित करने दिया जाना चाहिए जब तक कि i ' कुछ समझने में याद आती है।

pip -V 
pip 7.1.0 from /usr/local/lib/python2.7/site-packages (python 2.7) 

सिर्फ pip install चल संकुल कि माना जाता है कि बस यह द्वारा स्थापित किए गए थे लेकिन गलत साइट-संकुल के पास गया प्रदर्शित नहीं करता है के बाद pip list चल रहा है:

आश्चर्य की बात बात यह है कि -V साथ जाँच एक आश्चर्यजनक परिणाम पैदावार है ।

इसमें जोड़कर, /lib/python2.7/site-packages पर स्थापित संकुल मेरे $ PythonPATH द्वारा मान्यता प्राप्त नहीं हैं और इस तरह मैं उनका उपयोग नहीं कर सकता।

और भी भ्रम जोड़ने के लिए, मैंने वर्चुअलएन्व का उपयोग करने का निर्णय लिया, लेकिन वर्चुअलएन्व साइट-पैकेज के बजाय /lib/python2.7/site-packages पर सक्रिय वर्चुअलएन्व सक्रिय के साथ पाइप का उपयोग करने के रूप में भी मुझे आश्चर्य हुआ।

तो, किसी भी तरह से मैं होमब्री पाइप के साथ समाप्त हुआ, जो होमब्री साइट-पैकेज के बाहर पैकेज स्थापित करता है और एक पायथन दुभाषिया जो पाइप द्वारा स्थापित संकुल का उपयोग नहीं कर सकता है।

आप मूल कारण ढूंढने और चिकनी पायथन अनुभव रखने के बारे में कैसे सलाह देते हैं? :)

+0

क्या आपने '' venv/bin/सक्रिय करें 'अपने vitualenv? – Ray

उत्तर

0

मुझे लगता है कि वर्चुअलएन्व को सक्रिय करने के बाद आपके पाइथन पथ को उस वातावरण साइट-पैकेज स्थान पर इंगित करना चाहिए - यदि नहीं, तो यह संभवतः सक्रिय नहीं है। केवल एक बार जब आप इसे सक्रिय कर लेंगे तो आप पाइप चलाएंगे ताकि यह उस वर्चुअल एनवी के साइट-पैकेज में स्थापित हो।

  • चरण 1:: यदि यह सक्रिय नहीं है, यह जो कुछ भी अन्य साइट-संकुल यह पहले से ही के बारे में जानता में जाना होगा एक आभासी env बनाने
    • एक ला ... virtualenv venv
    • सिर्फ़ एक बार करना !
  • चरण 2: सक्रिय vitual env
    • कुछ source /venv/bin/activate तरह
    • आवश्यकताओं हर बार जब आप इस आभासी वातावरण का उपयोग करने के
  • चरण 3 चाहते कर: रन पिप आदेश, उन्हें देखने के वर्चुअल एनवी साइट-पैकेज में स्थापित हो जाओ!

यदि आप चरण 2 से पहले चरण 3 करते हैं तो वास्तव में आपके द्वारा बनाए गए वर्चुअल वातावरण का उपयोग नहीं करते हैं, इसलिए सभी दांव बंद हैं - शायद यही कारण है कि पीआईपी अभी भी पुराने स्थान पर स्थापित है।

अब, मेरी समग्र सिफारिश आगे बढ़ना है और pyenv का उपयोग अपने /Users/username/.pyenv folder में पाइथन के विशिष्ट संस्करण को स्थापित करने और डिफ़ॉल्ट ओएसएक्स और होमब्रू पैकेज दोनों को छोड़ना है। यह आसान है और आप आसानी से संस्करणों को बदलने के लिए आदेश जारी करने के द्वारा आसानी से पाइथन के सटीक संस्करण को नियंत्रित कर सकते हैं।

तब को Python2 में उपयोग virtualenv या pyvenv अगर python3 में (pyenv साथ भ्रमित होने की नहीं) अपने खुद के स्थानीय साइट-पैकेज के साथ vitual वातावरण का निर्माण करने के पिप मॉड्यूल स्टोर करने के लिए। जब आप वर्चुअलएन्व को सक्रिय करते हैं, तो आपका $ PYTHONPATH विशिष्ट स्थान पर स्विच हो जाएगा।

प्रवाह तो होगा:

  • उपयोग pyenv नीचे खींच और आप उपयोग करना चाहते अजगर की एक विशेष संस्करण में परिवर्तित करने के लिए - अधिभावी homebrew और OSX संस्करण।
  • अपना vitrualenv बनाएँ। यह एक बिन बनाएगा जो आपके द्वारा पिछले चरण में निर्दिष्ट पायनव पायथन स्टैक से लिंक होगा।
  • वर्चुअल एनवी सक्रिय करें, और आगे बढ़ें।

पूरी तरह से अपने वातावरण को नियंत्रित!

संबंधित मुद्दे