पायथन-आधारित एप्लिकेशन विकसित करते समय किसी पायथन पैकेज के विशिष्ट संस्करण की आवश्यकता हो सकती है। हालांकि, यदि इसी पैकेज का वही संस्करण सिस्टम-वाइड उपयोग के लिए इंस्टॉल किया गया है, तो यह अन्य एप्लिकेशन की आवश्यकताओं के साथ विरोधाभासी हो सकता है। इसलिए प्रत्येक उद्देश्य के लिए साइड-बाय-साइड एनवायरनमेंट रखना वांछनीय है ताकि कम्पैटिबिलिटी मुद्दों को हल किया जा सके।
वर्चुअल एनवायरनमेंट्स पायथन पैकेजेस को किसी विशेष एप्लिकेशन के लिए एक अलग स्थान पर इंस्टॉल करने की अनुमति देते हैं, बजाय वैश्विक रूप से इंस्टॉल होने के।
पायथन की स्टैंडर्ड लाइब्रेरी में venv मॉड्यूल का उपयोग वर्चुअल एनवायरनमेंट बनाने के लिए किया जाता है। एक वर्चुअल एनवायरनमेंट फाइल सिस्टम में एक डायरेक्टरी होती है जिसकी अपनी पायथन इंटरप्रेटर की कॉपी और अन्य स्क्रिप्ट्स होती हैं। निम्न कमांड नामित डायरेक्टरी में एक वर्चुअल एनवायरनमेंट बनाती है:
C:\python37>python -m venv e:\testenv
आपको निर्दिष्ट अनुसार एक नई डायरेक्टरी बनी हुई मिलेगी। उपरोक्त वैकल्पिक रूप से निम्न स्विच का उपयोग कर सकता है:
| --system-site-packages | वर्चुअल एनवायरनमेंट को सिस्टम साइट-पैकेज डायरेक्टरी तक पहुंच प्रदान करता है। |
| --symlinks | कॉपी के बजाय सिमलिंक्स का उपयोग करने का प्रयास करता है। |
| --copies | सिमलिंक्स के बजाय कॉपी का उपयोग करने का प्रयास करता है। |
| --clear | यदि एनवायरनमेंट डायरेक्टरी मौजूद है तो उसकी सामग्री को हटा देता है। |
| --upgrade | एनवायरनमेंट डायरेक्टरी को इस संस्करण के पायथन का उपयोग करने के लिए अपग्रेड करता है। |
| --without-pip | वर्चुअल एनवायरनमेंट में pip इंस्टॉल या अपग्रेड करना छोड़ देता है (pip डिफ़ॉल्ट रूप से बूटस्ट्रैप्ड होता है)। |
ENV_DIR (इस मामले में testenv) के अंतर्गत 'scripts' फ़ोल्डर में पायथन इंटरप्रेटर की स्थानीय कॉपी, pip इंस्टॉलर और एनवायरनमेंट को सक्रिय और निष्क्रिय करने के लिए स्क्रिप्ट्स होती हैं।
activate activate.bat activate.ps1 deactivate.bat easy_install-3.7.exe easy_install.exe pip.exe pip3.7.exe pip3.exe python.exe pythonw.exe
वर्चुअल एनवायरनमेंट सक्रिय करना
पृथक एनवायरनमेंट में पायथन शुरू करने के लिए, इसे पहले सक्रिय किया जाना चाहिए। इस उद्देश्य के लिए, कमांड लाइन से 'activate.bat' को आमंत्रित किया जाना चाहिए।
E:\testenv>scripts\activate (testenv) E:\testenv>python Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>>
वर्चुअल एनवायरनमेंट का नाम DOS प्रॉम्प्ट के बाईं ओर पैरेंथेसिस में दिखाई देता है। अब आप वर्चुअल एनवायरनमेंट में पायथन का उपयोग कर सकते हैं।
यदि वर्चुअल एनवायरनमेंट के scripts फ़ोल्डर में pip3 यूटिलिटी का उपयोग करके कोई पैकेज इंस्टॉल किया जाता है, तो यह स्थानीय रूप से इंस्टॉल होगा और सिस्टम-वाइड उपयोग के लिए उपलब्ध नहीं होगा।
वर्चुअल एनवायरनमेंट निष्क्रिय करना
सामान्य एनवायरनमेंट पर लौटने के लिए, scripts फ़ोल्डर में 'deactivate.bat' का उपयोग करके वर्चुअल एनवायरनमेंट को अक्षम किया जाना चाहिए।
>>> quit() (testenv) E:\testenv>scripts\deactivate E:\testenv>
पायथन 3.3 से पहले के संस्करणों के लिए, virtualenv का उपयोग करें जिसे अलग से इंस्टॉल किया जाना चाहिए।
venv मॉड्यूल प्रोग्रामेटिक रूप से वर्चुअल एनवायरनमेंट बनाने के लिए EnvironmentBuilder क्लास को परिभाषित करता है।