पायथन मॉड्यूल को रिमोटली इम्पोर्ट करने के तरीके हैं। हालांकि ऐसा करने की अनुशंसा नहीं की जाती क्योंकि यह आपके ऐप को धीमा कर देगा। आप इसे प्राप्त करने के लिए `knockout` मॉड्यूल का उपयोग कर सकते हैं।
knockout इंस्टॉल करें
$ pip install knockout
रिमोट इम्पोर्ट के लिए knockout उपयोग करें
>> from knockout import urlimport
>>> urlimport.register()
Url importing enabled. Add urls to sys.path.
एक वैध URL इस तरह दिखता है: https://example.com/path/to/repository/#packagename
>> import sys
>>> sys.path.insert(0, 'https://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.0.8/#BeautifulSoup')
>>> import BeautifulSoup
...
>>> BeautifulSoup
यह सामग्री प्रायोगिक है, अपने जोखिम पर उपयोग करें।
अनुमति के बिना मॉड्यूल इम्पोर्ट करने के वैकल्पिक तरीके
यदि आप किसी मशीन पर मॉड्यूल इंस्टॉल नहीं कर सकते (पर्याप्त अनुमति न होने के कारण), तो आप या तो `virtualenv` का उपयोग कर सकते हैं या मॉड्यूल फ़ाइलों को किसी अन्य डायरेक्टरी में सेव करके निम्नलिखित कोड का उपयोग करके पायथन को दिए गए मॉड्यूल में खोजने की अनुमति दे सकते हैं:
>> import os, sys
>>> file_path = 'AdditionalModules/'
>>> sys.path.append(os.path.dirname(file_path))
>>> # अब पायथन मॉड्यूल इम्पोर्ट करने के लिए AdditionalModules फ़ोल्डर भी खोजेगा क्योंकि हमने इसे PYTHONPATH पर सेट किया है।
virtualenv का उपयोग
आप एक आइसोलेटेड स्थानीय पायथन वातावरण बनाने के लिए `virtualenv` का भी उपयोग कर सकते हैं। संबोधित की जा रही मूल समस्या निर्भरता और संस्करणों की है, और अप्रत्यक्ष रूप से अनुमतियों की। कल्पना करें कि आपके पास एक एप्लिकेशन है जिसे `LibFoo` के संस्करण 1 की आवश्यकता है, लेकिन दूसरे एप्लिकेशन को संस्करण 2 की आवश्यकता है। आप दोनों एप्लिकेशन का उपयोग कैसे कर सकते हैं? यदि आप सब कुछ `/usr/lib/python2.7/site-packages` (या आपके प्लेटफॉर्म का मानक स्थान) में इंस्टॉल करते हैं, तो आप अनजाने में एक एप्लिकेशन को अपग्रेड करने की स्थिति में आसानी से पहुंच सकते हैं जिसे अपग्रेड नहीं किया जाना चाहिए। यह हमारे उपयोग के मामले में भी उपयोग किया जा सकता है जहां हम मशीन पर पैकेज इंस्टॉल नहीं कर सकते क्योंकि हमारे पास अनुमतियां नहीं हैं। अधिक जानकारी के लिए वर्चुअल एनवी डॉक्स पढ़ें: https://virtualenv.pypa.io/en/stable/
⚠️ चेतावनी: knockout प्रायोगिक है
- सुरक्षा जोखिम: रिमोट कोड निष्पादन
- नेटवर्क निर्भरता
- प्रदर्शन प्रभाव
- रखरखाव नहीं किया गया (पुराना पैकेज)
आधुनिक विकल्प
- वेंडरिंग (Vendoring): निर्भरताओं को अपने प्रोजेक्ट में कॉपी करें
- Git सबमॉड्यूल: निर्भरताओं को सबमॉड्यूल के रूप में प्रबंधित करें
- निजी PyPI सर्वर:
devpi,pypiserver, याArtifactory - GitHub Packages / GitLab Package Registry
- pip install git+https://... - सीधे Git रिपॉजिटरी से इंस्टॉल करें
Git से सीधे इंस्टॉल करें
pip install git+https://github.com/user/repo.git
pip install git+https://github.com/user/repo.git@v1.0.0 # टैग
pip install git+https://github.com/user/repo.git@branch-name # ब्रांच