Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन मॉड्यूल को डायनामिक रूप से कैसे इम्पोर्ट करें?

पायथन मॉड्यूल को डायनामिक रूप से इम्पोर्ट करने के लिए, आप `importlib` पैकेज के `import_module(moduleName)` फ़ंक्शन का उपयोग कर सकते हैं। आपके पास `moduleName` स्ट्रिंग के रूप में होना चाहिए।

बुनियादी उदाहरण


>>> from importlib import import_module
>>> moduleName = "os"
>>> globals()[moduleName] = import_module(moduleName)

मॉड्यूल की सूची डायनामिक रूप से इम्पोर्ट करें


>>> import importlib
>>> modnames = ["os", "sys", "math"]
>>> for lib in modnames:
...     globals()[lib] = importlib.import_module(lib)

`globals()` कॉल एक डिक्ट लौटाता है। हम आयात किए गए मॉड्यूल पर लौटाए गए ऑब्जेक्ट के रूप में प्रत्येक लाइब्रेरी के लिए `lib` कुंजी सेट कर सकते हैं।

बेहतर दृष्टिकोण: globals() प्रदूषित न करें


import importlib

def dynamic_import(module_name):
    """मॉड्यूल डायनामिक रूप से इम्पोर्ट करें और लौटाएं।"""
    return importlib.import_module(module_name)

def import_multiple(module_names):
    """कई मॉड्यूल इम्पोर्ट करें, {नाम: मॉड्यूल} डिक्ट लौटाएं।"""
    result = {}
    for name in module_names:
        try:
            result[name] = importlib.import_module(name)
        except ImportError as e:
            result[name] = e
    return result

# उपयोग
modules = import_multiple(['os', 'sys', 'json', 'requests'])
os_mod = modules['os']
json_mod = modules['json']

पैकेज से सबमॉड्यूल इम्पोर्ट करें


import importlib

# datetime.date इम्पोर्ट करें
date_module = importlib.import_module('datetime.date')

# या पूर्ण पथ के साथ
full_path = 'datetime.date'
date_module = importlib.import_module(full_path)

importlib.util के साथ उन्नत नियंत्रण (पायथन 3.4+)


import importlib.util
import sys

def load_module_from_file(module_name, file_path):
    """किसी भी .py फ़ाइल से मॉड्यूल लोड करें।"""
    spec = importlib.util.spec_from_file_location(module_name, file_path)
    if spec is None:
        raise ImportError(f"Cannot load module from {file_path}")
    
    module = importlib.util.module_from_spec(spec)
    sys.modules[module_name] = module
    spec.loader.exec_module(module)
    return module

# उपयोग
my_module = load_module_from_file('my_module', '/custom/path/my_module.py')

__import__ (लो-लेवल, अनुशंसित नहीं)


# पुराना तरीका - importlib पसंद करें
module = __import__('os', fromlist=['path'])

सुरक्षा चेतावनी

  • कभी भी अविश्वसनीय उपयोगकर्ता इनपुट से डायनामिक इम्पोर्ट न करें
  • इम्पोर्ट करने से पहले मॉड्यूल नामों को मान्य करें
  • अनुमत मॉड्यूल की व्हाइटलिस्ट का उपयोग करें

उपयोग के मामले

  • प्लगइन सिस्टम
  • कॉन्फ़िगरेशन-आधारित फीचर लोडिंग
  • लेजी लोडिंग (आवश्यकता पड़ने पर इम्पोर्ट)
  • हॉट रीलोडिंग / डेवलपमेंट टूल्स
  1. Python में Matplotlib इम्पोर्ट करना Python में Matplotlib इम्पोर्ट करना

    सबसे पहले, सुनिश्चित करें कि आपके सिस्टम पर python और pip प्रीइंस्टॉल्ड हैं। Python संस्करण जांचने के लिए, टाइप करें: python --version pip संस्करण जांचने के लिए, टाइप करें: pip -V फिर, Matplotlib इंस्टॉल करने के लिए कमांड प्रॉम्प्ट में निम्नलिखित pip कमांड चलाएं: pip install matplotlib यह सत्यापि

  1. - पायथन मॉड्यूल में सभी फ़ंक्शन कैसे सूचीबद्ध करें?

    आप मॉड्यूल के सभी एट्रिब्यूट/मेथड प्राप्त करने के लिए `dir(module)` का उपयोग कर सकते हैं। उदाहरण dir(math) [__doc__, __name__, __package__, acos, acosh, asin, asinh, atan, atan2, atanh, ceil, copysign, cos, cosh, degrees, e, erf, erfc, exp, expm1, fabs, factorial, floor, fmod, frexp, fsum, g

  1. - Python Module से Single Function कैसे Import करें?

    Python Module से Single Function Import करना आप from module import function Statement का उपयोग करके Python Module से Specific Function Import कर सकते हैं। उदाहरण यदि आप math Library से sin Function Import करना चाहते हैं बिना किसी अन्य Function को Import किए: >>> from math import sin >&