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

कैसे पता करें कि किसी पैकेज से कौन से पायथन मॉड्यूल इम्पोर्ट किए जा रहे हैं?

किसी विशेष पैकेज से एप्लिकेशन में उपयोग किए जा रहे सभी पायथन मॉड्यूल ढूंढने के लिए, आप `sys.modules` डिक्ट का उपयोग कर सकते हैं। `sys.modules` मॉड्यूल नामों को मॉड्यूल पर मैप करने वाला एक डिक्शनरी है। आप इसकी कुंजियों की जांच करके इम्पोर्ट किए गए मॉड्यूल देख सकते हैं।

उदाहरण


>>> from datetime import datetime
>>> import sys
>>> print(sys.modules.keys())
['copy_reg', 'sre_compile', 'locale', '_sre', 'functools', 'encodings', 'site', 
 '__builtin__', 'datetime', 'sysconfig', 'operator', '__main__', 'types', 
 'encodings.encodings', 'abc', 'encodings.cp437', '_weakrefset', 'errno', 
 'encodings.codecs', 'backports', 'sre_constants', 're', '_abcoll', 'ntpath', 
 '_codecs', 'zope', 'nt', '_warnings', 'genericpath', 'stat', 'zipimport', 
 'encodings.__builtin__', 'mpl_toolkits', 'warnings', 'UserDict', 
 'encodings.cp1252', 'sys', 'codecs', 'os.path', '_functools', '_locale', 
 'signal', 'traceback', 'linecache', 'encodings.aliases', 'exceptions', 
 'sre_parse', 'os', '_weakref']

वैकल्पिक: python -v (वर्बोज मोड)

आप `python -v` का भी उपयोग कर सकते हैं, जो हर इम्पोर्ट किए गए मॉड्यूल के बारे में संदेश उत्सर्जित करेगा। उदाहरण के लिए, यदि आपके पास `hello.py` में पायथन कोड है, तो:


$ python -v hello.py

बेहतर दृष्टिकोण: विशिष्ट पैकेज के लिए फ़िल्टर करें


import sys

def get_imported_from_package(package_prefix):
    """निर्दिष्ट पैकेज प्रीफिक्स से इम्पोर्ट किए गए मॉड्यूल लौटाएं।"""
    return [name for name in sys.modules 
            if name.startswith(package_prefix + '.') or name == package_prefix]

# उपयोग
import django
import django.db
import django.template
import requests

print(get_imported_from_package('django'))
# ['django', 'django.db', 'django.template']

रनटाइम इम्पोर्ट ट्रैकिंग


import sys

class ImportTracker:
    def __init__(self):
        self.imported_before = set(sys.modules.keys())
    
    def get_new_imports(self):
        current = set(sys.modules.keys())
        new = current - self.imported_before
        self.imported_before = current
        return sorted(new)

# उपयोग
tracker = ImportTracker()

# कुछ कोड जो मॉड्यूल इम्पोर्ट करता है
import json
import requests

print(tracker.get_new_imports())
# ['json', 'requests', 'urllib3', ...]

स्थैतिक विश्लेषण टूल्स

  • pydeps - मॉड्यूल निर्भरता ग्राफ विज़ुअलाइज़ करें
  • snakefood - इम्पोर्ट निर्भरता विश्लेषण
  • import-linter - इम्पोर्ट अनुबंध लागू करें
  • pyan - कॉल ग्राफ विश्लेषण

pydeps उदाहरण


pip install pydeps
pydeps mypackage --max-bacon=2 --show-deps
  1. Python में कितने क्यूब कटे हैं, यह खोजने का प्रोग्राम Python में कितने क्यूब कटे हैं, यह खोजने का प्रोग्राम

    मान लीजिए, a, b, और c आयामों के कई क्यूब्स हैं, और उनका उपयोग करके axbxc आयाम का एक नया बॉक्स बनाया जाता है। a, b, और c pairwise को-प्राइम हैं; gcd(a, b) = gcd(b,c) = gcd(c, a) = 1। हमें एक सिंगल स्लाइस के साथ बॉक्स को दो टुकड़ों में काटना है जैसा कि चित्र में दिखाया गया है। हमें यह पता करना है कि य

  1. - पायथन में लिस्ट से एलिमेंट कैसे हटाएं

    पायथन में लिस्ट एक लीनियर डेटा स्ट्रक्चर है जहां एलिमेंट्स सन्निहित मेमोरी लोकेशन्स में स्टोर होते हैं और एलिमेंट्स को उनके इंडेक्स द्वारा एक्सेस किया जाता है। हमें कभी-कभी पायथन में लिस्ट से एलिमेंट हटाने की आवश्यकता होती है। इसे प्राप्त करने के लिए विभिन्न इनबिल्ट फंक्शन्स हैं। pop() यह pop() मे

  1. Python में Label से Text कैसे Remove करें? Python में Label से Text कैसे Remove करें?

    Tkinter GUI-based applications बनाने और develop करने के लिए एक Python library है। इस लेख में, हम देखेंगे कि कुछ text वाले Label से text कैसे remove करें। Label से text remove करने के लिए, हम एक associated button बनाएंगे जो Label के लिए trigger के रूप में कार्य करेगा। उदाहरण # Import Tkinter Library