2010-12-12 8 views
5

पाने के लिए जब मैंकैसे मॉड्यूल स्थान

import module_name 

का उपयोग कर यह संभव है देखने के लिए जहां मेरी हार्ड डिस्क में कि मॉड्यूल स्थित है मॉड्यूल आयात?

+0

की डुप्लिकेट: http://stackoverflow.com/questions/269795/how-do-i-find-the-location-of-python-module-sources – Hugo

उत्तर

10

यह उल्लेख है कि संकुल __file__ विशेषता है जो __init__.py की ओर इशारा करता है लायक है, वे भी __path__ जो पैकेज निर्देशिका की ओर इशारा करता है। तो आप hasattr(module_name, '__path__') and module_name.__path__[0] or module_name.__file__ का उपयोग कर सकते हैं।

(आरईपीएल में) उदाहरण:

import socket, SOAPpy # SOAPpy is a package 
socket.__file__ 
# .../python2.5/socket.pyc 
socket.__path__ 
# AttributeError: 'module' object has no attribute '__path__' 
SOAPpy.__file__ 
# .../2.5/site-packages/SOAPpy/__init__.pyc 
SOAPpy.__path__ 
# ['.../2.5/site-packages/SOAPpy'] 
+0

आप सबूत है? मैंने बस इसे अपने पैकेज पर करने की कोशिश की, '__file__' वहां है ('पैकेज/__ init __। Pyc'), जैसा कि यह होना चाहिए," पैकेज "आयात के रूप में देखकर सिर्फ एक μinit__' नामक मॉड्यूल है। ('पैकेज .__ path__ == ['पैकेज']' –

+0

@ क्रिस अपडेट, धन्यवाद। – khachik

+0

कार्यों के बारे में क्या? क्या स्थान भी निर्धारित किया जा सकता है (अच्छी तरह से अन्य विकल्प मॉड्यूल के पथ की जांच करने के लिए प्रतीत होता है, जिससे इसे आयात किया जा रहा है और उम्मीद है कि –

1
import module_name 
module_name.__file__ 
3

कोशिश करें: module_name.__file__

आप 'का निरीक्षण' के लिए एक वस्तु, उपयोग करना चाहते हैं: inspect

0

आप मॉड्यूल के फ़ाइल विशेषता का उपयोग कर सकते हैं स्थान खोजने के लिए।

import sys print sys.__file__

संबंधित मुद्दे