पायथन वेन्व चीटशीट

कुछ उपयोगी venv आज्ञाएं

Page content

वेन्व एक वर्चुअल एनवाइरनमेंट मैनेजमेंट कमांड लाइन टूल है एनाकोंडा की तुलना में बहुत अधिक सरल। यहाँ कुछ उपयोगी वेन्व कमांड्स हैं।

एक पायथन एक लकड़ी के बॉक्स को खोलने की कोशिश कर रहा है।

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

पायथन वेन्व चीटशीट

एक वर्चुअल एनवाइरनमेंट बनाएं

  • मानक कमांड (पायथन 3.3+):

    python -m venv venv
    

    यह अपने वर्तमान डायरेक्टरी में एक नामित venv वर्चुअल एनवाइरनमेंट बनाता है।

  • एक विशिष्ट पायथन संस्करण के साथ (यदि स्थापित है):

    python3.10 -m venv venv
    

    या virtualenv का उपयोग करके:

    virtualenv -p /usr/local/bin/python3.10 venv
    

    (इसके लिए virtualenv पैकेज की आवश्यकता है।)

वर्चुअल एनवाइरनमेंट को सक्रिय करें

  • विंडोज पर:
    .\venv\Scripts\activate
    
  • macOS/Linux पर:
    source venv/bin/activate
    
    अब शेल प्रम्प्ट में एनवाइरनमेंट के नाम के साथ दिखाई देना चाहिए।

वर्चुअल एनवाइरनमेंट को बंद करें

  • सभी प्लेटफॉर्म:
    deactivate
    
    यह आपको प्रणाली पायथन में लौटा देता है।

पैकेज इंस्टॉल करें

  • पीप के साथ:
    pip install
    
    उदाहरण:
    pip install numpy pandas
    
  • पीप अपग्रेड (सिफारिश की गई):
    python -m pip install --upgrade pip
    

फ्रीज और आवश्यकताओं का निर्यत

  • वर्तमान एनवाइरनमेंट पैकेजों को सहेजें:
    pip freeze > requirements.txt
    
  • आवश्यकता फ़ाइल से इंस्टॉल करें:
    pip install -r requirements.txt
    
    इन कमांड्स को चलाने से पहले अपने वर्चुअल एनवाइरनमेंट को सक्रिय करें।

एक वर्चुअल एनवाइरनमेंट हटाएं

deactivate
rm -rf <env path>

पायथन वर्चुअल एनवाइरनमेंट मैनेजमेंट में आम खामियाँ

वर्चुअल एनवाइरनमेंट को सक्रिय करने की भूल

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

पैकेज संस्करणों को लॉक करने की भूल

  • requirements.txt में ढीले संस्करण विशेषज्ञ (जैसे >= के बजाय ==) का उपयोग पुनर्निर्माण के लिए असमर्थन करता है। सटीक संस्करण लॉक करना सुनिश्चित करता है कि प्रोजेक्ट पर काम करने वाले सभी लोग समान पैकेज संस्करणों का उपयोग करते हैं, जिससे तैयारी या सहयोग के दौरान अप्रत्याशित समस्याएं रोकी जा सकती हैं।

ग्लोबल और वर्चुअल एनवाइरनमेंट के मिश्रण

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

वर्चुअल एनवाइरनमेंट को वर्सन कंट्रोल में जोड़ना

  • वर्सन कंट्रोल में वर्चुअल एनवाइरनमेंट डायरेक्टरी (जैसे venv/) शामिल करना रिपॉजिटरी को बढ़ाता है और अनावश्यक है। हमेशा venv डायरेक्टरी को .gitignore में जोड़ें ताकि आपका रिपॉजिटरी साफ रहे।

विकास और उत्पादन आवश्यकताओं के बीच अलगाव की उपेक्षा

  • विकास और उत्पादन आवश्यकताओं के बीच अंतर के बिना असफलता बड़े या असुरक्षित उत्पादन वातावरण का कारण बन सकता है। प्रत्येक के लिए अलग आवश्यकता फ़ाइलें या संरचना खंडों का उपयोग करें।

दस्तावेजीकरण और स्वचालन की कमी

  • वातावरण स्थापना के चरणों के दस्तावेजीकरण के बिना या स्वचालन के बिना (स्क्रिप्ट या मेकफ़ाइल के साथ) नए सहयोगकर्ताओं के ओनबोर्डिंग और वातावरणों के पुनर्निर्माण को कठिन बना सकता है।

पुराने वातावरणों की नियमित सफाई की उपेक्षा

  • समय के साथ, अप्रयुक्त वर्चुअल एनवाइरनमेंट एकत्रित हो सकते हैं, जो डिस्क स्थान के व्यर्थ उपयोग और भ्रम का कारण बन सकते हैं। पुराने वेन्व को नियमित रूप से हटाएं ताकि एक साफ कार्यस्थल बना रहे।

सिस्टम पायथन और पैकेज मैनेजर सीमाओं की उपेक्षा

  • सिस्टम पायथन को संशोधित करना या पीप के साथ सिस्टम पैकेज मैनेजर के मिश्रण के अपराध के कारण सिस्टम उपकरणों को बर्बर बना सकता है और कठिन निदान वाली समस्याओं का कारण बन सकता है। हमेशा वेन्व का उपयोग प्रोजेक्ट निर्भरताओं के लिए करें और सिस्टम-प्रबंधित पैकेजों के साथ हस्तक्षेप न करें।

सारांश सारणी

खामी प्रभाव
वेन्व को सक्रिय करने की भूल गलत वातावरण में पैकेज इंस्टॉल करता है
पैकेज संस्करणों को लॉक करने की भूल अनिश्चित बिल्ड, असंभव बगों के निर्माण
ग्लोबल और वर्चुअल वातावरणों के मिश्रण निर्भरता/संस्करण संघर्ष
वातावरण डायरेक्टरी को वर्सन कंट्रोल में जोड़ना बढ़े हुए, गंदे रिपॉजिटरी
विकास और उत्पादन आवश्यकताओं के बीच अलगाव की उपेक्षा बढ़े हुए/असुरक्षित उत्पादन वातावरण
दस्तावेजीकरण/स्वचालन की कमी नए सहयोगकर्ताओं के लिए कठिन, असंगत सेटअप
पुराने वातावरणों की नियमित सफाई की उपेक्षा डिस्क स्थान का व्यर्थ उपयोग, भ्रम
सिस्टम पायथन या पैकेज के सीमाओं की उपेक्षा सिस्टम के अस्थिरता, टूल्स के बर्बरता

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

पुनर्निर्माण के लिए कॉंडा और वर्चुअल एनवाइरनमेंट के बीच मुख्य अंतर

विशेषता कॉंडा एनवाइरनमेंट्स पायथन वर्चुअल एनवाइरनमेंट (venv/virtualenv)
मैनेजमेंट के क्षेत्र पायथन पैकेज और गैर-पायथन निर्भरताओं (जैसे सिस्टम लाइब्रेरी, कंपाइलर) के प्रबंधन करता है pip के माध्यम से केवल पायथन पैकेजों के प्रबंधन करता है
पायथन संस्करण कंट्रोल प्रत्येक एनवाइरनमेंट के लिए कोई भी पायथन संस्करण निर्दिष्ट और इंस्टॉल कर सकता है सिस्टम-इंस्टॉल्ड पायथन संस्करण का उपयोग करता है
क्रॉस-प्लेटफॉर्म संगतता अधिक संगत होता है अलग-अलग ऑपरेटिंग सिस्टम (विंडोज, मैकओएस, लिनक्स) के लिए क्योंकि सभी निर्भरताओं का प्रबंधन करता है सिस्टम लाइब्रेरी पर निर्भर करता है, जो ऑपरेटिंग सिस्टम के अनुसार अलग हो सकता है
पैकेज स्रोत कॉंडा रिपॉजिटरीज (पूर्व-कंपाइल्ड बाइनरी, वैज्ञानिक स्टैक) का उपयोग करता है पायथन पैकेजों के लिए पीपीआई (पीप) का उपयोग करता है
पुनर्निर्माण जटिल, वैज्ञानिक या मिश्रित भाषा प्रोजेक्टों के लिए अधिक उचित होता है; पूर्ण एनवाइरनमेंट के लिए conda env export के साथ निर्यत कर सकता है शुद्ध-पायथन प्रोजेक्टों के लिए अच्छा होता है; यदि सिस्टम निर्भरताओं के संबंध में शामिल होता है तो पुनर्निर्माण की असमर्थता हो सकती है
गैर-पायथन निर्भरताएं इंस्टॉल और प्रबंधन कर सकता है (जैसे ओपनबीएलएस, लिबपंग) प्रबंधन नहीं करता; अलग रूप से इंस्टॉल करना आवश्यक है
एनवाइरनमेंट निर्यत/आयात conda env export / conda env create पूर्ण पुनर्निर्माण के लिए pip freeze > requirements.txt / pip install -r requirements.txt (केवल पायथन पैकेज)
प्रदर्शन बड़े वैज्ञानिक पैकेजों (जैसे नंबर, पैंडस) के लिए तेज और अधिक विश्वसनीय होता है विंडोज पर विशेष रूप से स्रोत से कंपाइल करना आवश्यक हो सकता है
जटिलता स्थापना और प्रबंधन के लिए थोड़ा अधिक ओवरहेड होता है शुद्ध-पायथन प्रोजेक्टों के लिए हल्का और सरल होता है

मुख्य बिंदुओं का सारांश

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

  • पायथन वर्चुअल एनवाइरनमेंट (venv/virtualenv) शुद्ध-पायथन प्रोजेक्टों में पायथन निर्भरताओं के अलगाव के लिए हल्के और उत्कृष्ट होते हैं। हालांकि, वे सिस्टम-स्तरीय या गैर-पायथन निर्भरताओं के प्रबंधन नहीं करते, इसलिए यदि आपके प्रोजेक्ट बाहरी लाइब्रेरी या विशिष्ट सिस्टम व्यवस्था पर निर्भर हैं तो पुनर्निर्माण कमजोर हो सकता है।

  • एनवाइरनमेंट निर्यत और साझा करें: कॉंडा आपके एनवाइरनमेंट के विशिष्ट विवरण (conda env export) के साथ एक पूर्ण एनवाइरनमेंट को निर्यत करने की अनुमति देता है, जिसमें सभी निर्भरताओं और उनके संस्करणों के साथ अन्यत्र पुनर्निर्माण कर सकता है। वर्चुअल एनवाइरनमेंट के साथ, pip freeze केवल पायथन पैकेजों को निर्यत करता है, निर्भरताओं या पायथन इंटरप्रेटर संस्करण के साथ नहीं।

  • निष्कर्ष
    कॉंडा के उपयोग से वैज्ञानिक, क्रॉस-प्लेटफॉर्म या जटिल प्रोजेक्ट में अधिकतम पुनर्निर्माण के लिए उपयोग करें। पायथन वर्चुअल एनवाइरनमेंट के उपयोग के लिए लाइटवेट, शुद्ध-पायथन प्रोजेक्टों के लिए जहां सिस्टम निर्भरताएं चिंता का विषय नहीं है।

उपयोगी लिंक