आप सामान्य रूप से एक फ़ाइल में Python मॉड्यूल को इनकैप्सुलेट नहीं कर सकते हैं। क्योंकि ऐसा करने से मॉड्यूल खोज विधि नष्ट हो जाएगी जो कि अजगर (फाइलें और निर्देशिका) का उपयोग करता है। यदि आप मशीन पर मॉड्यूल स्थापित करने में सक्षम नहीं हैं (पर्याप्त अनुमति नहीं होने के कारण), तो आप वर्चुअलएन्व का उपयोग कर सकते हैं या मॉड्यूल फ़ाइलों को किसी अन्य निर्देशिका में सहेज सकते हैं और पाइथन को दिए गए मॉड्यूल में मॉड्यूल की खोज करने की अनुमति देने के लिए निम्न कोड का उपयोग कर सकते हैं:
>>> import os, sys >>> file_path = 'AdditionalModules/' >>> sys.path.append(os.path.dirname(file_path)) >>> # Now python also searches AdditionalModules folder for importing modules as we have set it on the PYTHONPATH.
आप एक अलग स्थानीय पायथन वातावरण बनाने के लिए वर्चुअलएन्व का भी उपयोग कर सकते हैं। संबोधित की जा रही मूल समस्या निर्भरता और संस्करणों में से एक है, और परोक्ष रूप से अनुमतियां हैं। कल्पना कीजिए कि आपके पास एक एप्लिकेशन है जिसे LibFoo के संस्करण 1 की आवश्यकता है, लेकिन किसी अन्य एप्लिकेशन को संस्करण 2 की आवश्यकता है। आप इन दोनों अनुप्रयोगों का उपयोग कैसे कर सकते हैं? यदि आप सब कुछ /usr/lib/python2.7/site-packages (या जो भी आपके प्लेटफॉर्म का मानक स्थान है) में स्थापित करते हैं, तो ऐसी स्थिति में समाप्त होना आसान है जहां आप अनजाने में किसी एप्लिकेशन को अपग्रेड करते हैं जिसे अपग्रेड नहीं किया जाना चाहिए। इसका उपयोग हमारे उपयोग के मामले में भी किया जा सकता है जहां हम मशीन पर पैकेज स्थापित नहीं कर सकते क्योंकि हमारे पास अनुमति नहीं है। वर्चुअल एनवी के बारे में अधिक जानकारी के लिए, दस्तावेज़ पढ़ें:https://virtualenv.pypa.io/en/stable/