A guide to Python virtual environments with virtualenvwrapper

Share it !


कुछ समय के लिए, पायथन ने आभासी वातावरण के प्रबंधन के लिए समर्थन शामिल किया है। पायथन 3.3 ने बिल्ट-इन भी जोड़ा venv तृतीय-पक्ष पुस्तकालयों के बिना वातावरण बनाने के लिए मॉड्यूल। पायथन प्रोग्रामर अपने वातावरण को प्रबंधित करने के लिए कई अलग-अलग उपकरणों का उपयोग करते हैं, और जो मैं उपयोग करता हूं उसे कहा जाता है virtualenvwrapper

वर्चुअल वातावरण आपके पायथन प्रोजेक्ट और इसकी निर्भरता को आपके सिस्टम द्वारा स्थापित पायथन से अलग करने का एक तरीका है। यदि आप एक macOS या लिनक्स-आधारित ऑपरेटिंग सिस्टम का उपयोग करते हैं, तो यह बहुत संभव है कि अधिष्ठापन के भाग के रूप में पायथन के एक संस्करण के साथ आता है, और वास्तव में, यह संभवतः ठीक से कार्य करने के लिए पायथन के उस विशेष संस्करण पर निर्भर करेगा। लेकिन यह आपका कंप्यूटर है, और आप इसे अपने उद्देश्यों के लिए उपयोग करना चाह सकते हैं। ऑपरेटिंग सिस्टम प्रदान करने की तुलना में आपको पायथन का दूसरा संस्करण स्थापित करने की आवश्यकता हो सकती है। आपको कुछ अतिरिक्त लाइब्रेरी भी स्थापित करने की आवश्यकता हो सकती है। हालाँकि यह आपके सिस्टम पायथन को अपग्रेड करना संभव है, यह अनुशंसित नहीं है। अन्य पुस्तकालयों को स्थापित करना भी संभव है, लेकिन आपको इस बात का ध्यान रखना चाहिए कि सिस्टम जिस चीज़ पर निर्भर करता है, उसके साथ हस्तक्षेप न करें।

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

क्यों virtualenvwrapper अन्य उपकरणों पर? संक्षेप में:

  • बल्कि होने से venv अपनी परियोजना निर्देशिका के अंदर या उसके साथ निर्देशिका, virtualenvwrapper आपके सभी वातावरणों को एक स्थान पर रखता है: ~/.virtualenvs डिफ़ॉल्ट रूप से।
  • यह आसानी से वातावरण बनाने और सक्रिय करने के लिए कमांड प्रदान करता है, और सक्रियण सही का पता लगाने पर भरोसा नहीं करता है activate स्क्रिप्ट। यह सिर्फ workon projectname (कहीं से भी) के बजाय source ~/Projects/flashylights-env/bin/activate

शुरू करना

सबसे पहले, यह समझने के लिए समय निकालना महत्वपूर्ण है कि आपका सिस्टम पायथन कैसे कॉन्फ़िगर किया गया है और कैसे है रंज उपकरण काम करता है।

एक उदाहरण के रूप में रास्पबेरी पाई ओएस का उपयोग करने के लिए, ऑपरेटिंग सिस्टम पायथन 2.7 और 3.7 स्थापित दोनों के साथ आता है। यह अलग-अलग उदाहरण भी प्रदान करता है रंज, प्रत्येक संस्करण के लिए एक:

  • आदेश python पायथन 2.7 चलाता है और पर स्थित है /usr/bin/python
  • आदेश python3 पायथन 3.7 चलाता है और पर स्थित है /usr/bin/python3
  • आदेश pip पायथन 2.7 के लिए पैकेज स्थापित करता है और पर स्थित है /usr/bin/pip
  • आदेश pip3 पायथन 3.7 के लिए पैकेज स्थापित करता है और यह स्थित है /usr/bin/pip3

जब यह आता है तो मामलों की अपनी स्थिति को सत्यापित करना उपयोगी होता है python तथा pip वर्चुअल वातावरण का उपयोग शुरू करने से पहले कमांड। आपके बारे में अधिक जानकारी pip कमांड चलाकर उदाहरणों को पाया जा सकता है pip debug या pip3 debug

मेरे लिनक्स कंप्यूटर पर बराबर जानकारी, जो उबंटू चलाता है, लगभग समान है (सिवाय इसके कि यह पायथन 3.8 है); और यह मेरी मैकबुक पर बहुत समान है, सिवाय इसके कि एकमात्र सिस्टम पायथन 2.6 है, और मैंने उपयोग किया brew पायथन 3.8 को स्थापित करने के लिए, इसलिए यह पर स्थित है /usr/local/bin/python3 इसके बजाय (साथ में) pip3) है।

Virtualenvwrapper स्थापित करना

आपको अपने सिस्टम का उपयोग करके virtualenvwrapper स्थापित करना होगा pip पायथन 3 के लिए:

sudo pip3 install virtualenvwrapper

अगला कदम virtualenvwrapper कमांड को लोड करने के लिए आपके शेल को कॉन्फ़िगर करना है। आप अपने शेल की RC फ़ाइल को संपादित करके ऐसा करते हैं (जैसे .bashrc, .bash_profile, या .zshrc) और निम्नलिखित पंक्तियों को जोड़ना:

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh

यदि आपका पायथन 3 कहीं और स्थित है, तो अपने सेटअप के अनुसार पहली पंक्ति को बदलें।

अपना टर्मिनल बंद करें और प्रभावी होने के लिए इसे फिर से खोलें। पहली बार जब आप टर्मिनल खोलते हैं, तो आपको virtualenvwrapper से कुछ आउटपुट देखना चाहिए। यह केवल एक बार होगा, क्योंकि कुछ निर्देशिकाएं सेटअप के भाग के रूप में बनाई जाती हैं।

अब आपको कमांड टाइप करने में सक्षम होना चाहिए mkvirtualenv --version यह सत्यापित करने के लिए कि virtualenvwrapper स्थापित है।

एक नया आभासी वातावरण बनाना

कहते हैं कि आप एक परियोजना पर काम कर रहे हैं चमकता हुआ। इस नाम से वर्चुअल वातावरण बनाने के लिए, कमांड चलाएँ:

mkvirtualenv flashylights

पर्यावरण बनाया और सक्रिय किया गया है, इसलिए आप देखेंगे (flashlylights) आपके संकेत से पहले प्रकट होता है:

अब जब पर्यावरण सक्रिय हो गया है, चीजें बदल गई हैं। python अब आपके सिस्टम पर पहले पहचाने गए एक (ओं) की तुलना में पूरी तरह से अलग पायथन उदाहरण पर इंगित करता है। यह आपके वातावरण के लिए एक निर्देशिका बनाई गई है और पायथन 3 बाइनरी, पिप कमांड, और इसके अंदर और अधिक की एक प्रति रखी है। प्रकार which python तथा which pip यह देखने के लिए कि वे कहाँ स्थित हैं:

यदि आप अब पायथन प्रोग्राम चलाते हैं, तो आप इसे चला सकते हैं python के बजाय python3, और आप उपयोग कर सकते हैं pip के बजाय pip3। आपके द्वारा उपयोग किया जा रहा कोई भी पैकेज pip अकेले इस वातावरण में स्थापित किया जाएगा, और वे आपकी अन्य परियोजनाओं, अन्य वातावरण, या आपके सिस्टम की स्थापना में हस्तक्षेप नहीं करेंगे।

पर्यावरण को निष्क्रिय करने के लिए, कमांड चलाएं deactivate। इसे फिर से सक्षम करने के लिए, चलाएं workon flashylights

आप सभी उपलब्ध वातावरणों को सूचीबद्ध कर सकते हैं workon या उपयोग करें lsvirtualenv। आप के साथ एक वातावरण हटा सकते हैं rmvirtualenv flashylights

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

उन्नत सुविधाओं

  • आप अपने सिस्टम पर कई पायथन संस्करण स्थापित कर सकते हैं (जैसे, का उपयोग करके deadsnakes पीपीए उबंटू पर) और उदाहरण के लिए, उस विशेष संस्करण के साथ एक आभासी वातावरण बनाएं, mkvirtualenv -p /usr/bin/python3.9 myproject
  • आप एक निर्देशिका में प्रवेश / छोड़ने पर सक्रियण / निष्क्रिय कर सकते हैं।
  • आप उपयोग कर सकते हैं postmkvirtualenv हर बार एक नया वातावरण बनाने के लिए सामान्य उपकरण स्थापित करने के लिए हुक।

में और सुझाव देखें डॉक्स


यह लेख बेन न्यूटल के पर आधारित है टूलींग मंगलवार की पोस्ट virtualenvwrapper पर और अनुमति के साथ पुन: उपयोग किया जाता है।



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *