virtualenvआपको अपने प्रोजेक्ट के उपनिर्देशिका में एक कस्टम पायथन इंस्टॉलेशन बनाने की अनुमति देता है। आपकी प्रत्येक परियोजना इस प्रकार pythonअपने संबंधित वर्चस्व के तहत अपनी (या यहां तक कि कई) हो सकती है। यह कुछ / सभी virtualenvs के लिए पूरी तरह से ठीक है, यहां तक कि pythonसंघर्ष के बिना (जैसे 2.7.16) का एक ही संस्करण है - वे अलग-अलग रहते हैं और एक-दूसरे के बारे में नहीं जानते हैं। यदि आप उन में से किसी का उपयोग करना चाहते हैं python, तो आपको यह करना activateहोगा (एक स्क्रिप्ट चलाकर जो अस्थायी रूप से आपके PATHपास यह सुनिश्चित करने के लिए संशोधित करेगा कि वर्चुअन की bin/निर्देशिका पहले आती है)। उस बिंदु से, कॉलिंग python(या pipआदि) उस वर्चुअन के संस्करण को तब तक लागू करेगा जब तक आप deactivateइसे (जो पुनर्स्थापित करता है PATH)।
pyenvकी तुलना में व्यापक पैमाने पर काम करता है virtualenv- यह पायथन इंस्टॉलेशन का एक रजिस्टर रखता है (और इसका उपयोग नए को स्थापित करने के लिए किया जा सकता है) और आपको pythonकमांड का उपयोग करते समय पायथन के किस संस्करण को कॉन्फ़िगर करने की अनुमति देता है । समान लगता है, लेकिन व्यावहारिक उपयोग थोड़ा अलग है। यह अपनी शिम pythonलिपि को आपके PATH(स्थायी रूप से) पूर्वसूचक बनाकर काम करता है और फिर निर्णय लेता है कि कौन सा "वास्तविक" pythonआह्वान करना है। तुम भी अपने virtualenv अजगर ( pyenv-virtualenvप्लगइन का उपयोग करके ) में कॉल करने के लिए pyenv को कॉन्फ़िगर कर सकते हैं । पायथन संस्करण जो आप इंस्टॉल करते pyenvहैं, उसकी $(pyenv root)/versions/निर्देशिका में जाते हैं (डिफ़ॉल्ट रूप से, pyenv रूट ~ / .pyenv है) इसलिए virtualenv की तुलना में अधिक 'वैश्विक' हैं। आमतौर पर, आप पायथन संस्करणों को डुप्लिकेट नहीं कर सकते हैं pyenv, कम से कम ऐसा करने का मुख्य विचार नहीं है।
एक विशिष्ट पायथन संस्करण के साथ एक वर्चुअन बनाने के लिए, आपको उस संस्करण को अपने सिस्टम में कहीं (चाहे वह है PATHया नहीं) पर रखने की आवश्यकता है और अनिवार्य रूप से इसे अपने नए बनाए गए वर्चुअन में क्लोन करें। बेशक, एक विशेष संस्करण प्राप्त करने का एक तरीका इसके माध्यम से स्थापित करना है pyenv। एक बार ऐसा हो जाने के बाद, अलग-अलग वर्चुअलाइजन्स अलग-अलग मॉड्यूल (या उसके बाद वाले संस्करण) होने से मुक्त होने के लिए स्वतंत्र हैं।
संक्षेप में:
virtualenv आप मौजूदा लोगों से क्लोनिंग द्वारा स्थानीय, स्वतंत्र अजगर प्रतिष्ठानों को बनाने की अनुमति देता है
pyenv आपको एक साथ अजगर के विभिन्न संस्करणों को स्थापित करने की अनुमति देता है (या तो सिस्टम-वाइड या सिर्फ स्थानीय उपयोगकर्ता के लिए) और फिर किसी भी समय चलने के लिए अजगर की भीड़ में से कौन सा चुनें (जिसमें वर्चुअन या एनाकोंडा द्वारा बनाए गए हैं)