प्योर पायथन मॉड्यूल के लिए आप `module.__file__` को देखकर सोर्स फ़ाइलों का स्थान ढूंढ सकते हैं।
उदाहरण
>>> import mymodule
>>> mymodule.__file__
'C:/Users/Ayush/mymodule.py'
बिल्ट-इन मॉड्यूल
कई बिल्ट-इन मॉड्यूल C में लिखे गए हैं, और इसलिए `module.__file__` एक `.so` फ़ाइल की ओर इशारा करता है (विंडोज पर कोई `module.__file__` नहीं), और इसलिए, आप सोर्स नहीं देख सकते।
कमांड लाइन से
`"python -v"` कमांड लाइन से चलाने पर आपको बताया जाता है कि क्या इम्पोर्ट किया जा रहा है और कहां से। यह बिल्ट-इन मॉड्यूल के स्थान को जानने के लिए उपयोगी है।
अतिरिक्त विधियां
1. importlib.util (पायथन 3.4+)
import importlib.util
spec = importlib.util.find_spec('module_name')
if spec:
print(spec.origin) # फ़ाइल पथ या 'built-in'
print(spec.submodule_search_locations) # पैकेज के लिए
2. inspect मॉड्यूल
import inspect
import mymodule
print(inspect.getfile(mymodule))
print(inspect.getsourcefile(mymodule))
3. sys.modules
import sys
module = sys.modules.get('module_name')
if module:
print(getattr(module, '__file__', 'built-in'))
4. pkgutil (पैकेज के लिए)
import pkgutil
# पैकेज पथ प्राप्त करें
import mypackage
print(mypackage.__path__)
# ['/path/to/mypackage']
# या
spec = importlib.util.find_spec('mypackage')
print(spec.submodule_search_locations)
5. कमांड लाइन टूल्स
# मॉड्यूल फ़ाइल प्रिंट करें
python -c "import module; print(module.__file__)"
# पैकेज स्थान
python -c "import package; print(package.__path__)"
# पिप शो
pip show package_name
# Location: /path/to/site-packages
पथ प्रकार
| प्रकार | उदाहरण | विवरण |
|---|---|---|
| मॉड्यूल फ़ाइल | /path/to/module.py | प्योर पायथन मॉड्यूल |
| पैकेज पथ | ['/path/to/package'] | `__path__` सूची |
| बिल्ट-इन | 'built-in' | C एक्सटेंशन, कोई फ़ाइल नहीं |
| नेमस्पेस पैकेज | ['/path1', '/path2'] | एकाधिक स्थान |