प्योर पायथन मॉड्यूल के लिए आप `module.__file__` को देखकर सोर्स फ़ाइलों का स्थान ढूंढ सकते हैं।
उदाहरण
>>> import mymodule
>>> mymodule.__file__
'C:/Users/Ayush/mymodule.py'
बिल्ट-इन / C एक्सटेंशन मॉड्यूल
कई बिल्ट-इन मॉड्यूल C में लिखे गए हैं, और इसलिए `module.__file__` एक `.so` फ़ाइल की ओर इशारा करता है (विंडोज पर कोई `module.__file__` नहीं), और इसलिए, आप सोर्स नहीं देख सकते।
आप मैन्युअली जा सकते हैं और `PYTHONPATH` वेरिएबल की सामग्री की जांच कर सकते हैं ताकि उन डायरेक्टरी को ढूंढ सकें जहां से ये बिल्ट-इन मॉड्यूल इम्पोर्ट किए जा रहे हैं।
"python -v" कमांड लाइन से चलाएं
यह आपको बताता है कि क्या इम्पोर्ट किया जा रहा है और कहां से। यह बिल्ट-इन मॉड्यूल के स्थान को जानने के लिए उपयोगी है।
अतिरिक्त विधियां
1. inspect मॉड्यूल
import inspect
import mymodule
print(inspect.getfile(mymodule))
print(inspect.getsourcefile(mymodule))
# सोर्स कोड प्राप्त करें
print(inspect.getsource(mymodule))
2. importlib.util (पायथन 3.4+)
import importlib.util
spec = importlib.util.find_spec('mymodule')
if spec and spec.origin:
print(spec.origin)
# 'C:/path/to/mymodule.py' या 'built-in' के लिए
3. pkgutil (पैकेज के लिए)
import pkgutil
# पैकेज में सभी मॉड्यूल सूचीबद्ध करें
for importer, modname, ispkg in pkgutil.iter_modules(mypackage.__path__):
print(f"{modname}: {'पैकेज' if ispkg else 'मॉड्यूल'}")
4. कमांड लाइन
# मॉड्यूल स्थान दिखाएं
python -c "import mymodule; print(mymodule.__file__)"
# वर्बोज इम्पोर्ट ट्रेस
python -v -c "import mymodule" 2>&1 | grep mymodule
# पिप शो
pip show mypackage
# Location: /path/to/site-packages
विंडोज पर नोट
विंडोज पर, C एक्सटेंशन के लिए `module.__file__` `.pyd` फ़ाइल की ओर इशारा करता है (`.so` के बजाय)। सोर्स कोड पायथन इंस्टॉलेशन के सोर्स डिस्ट्रीब्यूशन में या ऑनलाइन (GitHub, python.org) उपलब्ध है।
सारांश
| विधि | कार्यक्षेत्र | नोट्स |
|---|---|---|
| `module.__file__` | प्योर पायथन | सरल, सीधा |
| `inspect.getfile()` | प्योर पायथन | अधिक मजबूत |
| `importlib.util.find_spec()` | सभी मॉड्यूल | आधुनिक, बिल्ट-इन के लिए 'built-in' लौटाता है |
| `python -v` | सभी इम्पोर्ट | डिबगिंग के लिए बढ़िया |
| `pip show` | इंस्टॉल पैकेज | मेटाडेटा शामिल |