आप रनटाइम पर पैकेज इंस्टॉल करने के लिए `pip` का उपयोग कर सकते हैं और मॉड्यूल को उसके नाम से स्ट्रिंग के रूप में इम्पोर्ट करने के लिए `importlib.import_module(moduleName)` का उपयोग कर सकते हैं।
उदाहरण कोड
import pip
import importlib
def import_with_auto_install(package):
try:
return importlib.import_module(package)
except ImportError:
pip.main(['install', package])
return importlib.import_module(package)
# उपयोग उदाहरण
if __name__ == '__main__':
scrapy = import_with_auto_install('scrapy')
print(scrapy)
उपरोक्त स्क्रिप्ट `scrapy` मॉड्यूल को इंस्टॉल करती है और इंस्टॉलेशन पूरा होने पर इसे इम्पोर्ट करती है।
महत्वपूर्ण नोट्स
- सुरक्षा चेतावनी: प्रोडक्शन कोड में रनटाइम इंस्टॉलेशन से बचें
- पायथन 10+ में `pip.main()` डिप्रिकेटेड है - `subprocess` का उपयोग करें
- बेहतर तरीका: `requirements.txt` और वर्चुअल एनवायरनमेंट का उपयोग करें
- कंटेनर/डिप्लॉयमेंट में निर्भरता पहले से इंस्टॉल होनी चाहिए
आधुनिक विकल्प (पायथन 3.10+)
import subprocess
import importlib
import sys
def install_and_import(package):
try:
return importlib.import_module(package)
except ImportError:
subprocess.check_call([sys.executable, '-m', 'pip', 'install', package])
return importlib.import_module(package)