2010-04-15 11 views
5

मैं एक पायथन लाइब्रेरी को संशोधित करने की कोशिश कर रहा हूं जिसे मैंने डाउनलोड किया है और उपयोग कर रहा हूं। लेकिन मैं जो बदलाव कर रहा हूं वह कुछ भी नहीं कर रहा है। तो मुझे संदेह है कि पाइथन फाइल सिस्टम पर कहीं और से इस पुस्तकालय की एक अलग प्रति आयात कर रहा है। तो ...मैं कैसे बता सकता हूं कि पाइथन में आयातित लाइब्रेरी से कौन सी निर्देशिका आती है?

जब मैं पाइथन में import foolib चलाता हूं, तो मैं कैसे कह सकता हूं कि उस पुस्तकालय को उस सिस्टम सिस्टम से कहां मिल रहा है?

उत्तर

6
import foolib 
print foolib.__file__ 

दुर्भाग्यवश, यह केवल कुछ मॉड्यूल के लिए काम करता है। जैसे यह मैंने लिखा एक मॉड्यूल पर काम करता है, लेकिन sys पर नहीं।

2

foolib.__file__ पर देखें।

8

सही जवाब यह सब कुछ, यहां तक ​​कि sys पर काम करता है ... sys.modules उपयोग करने के लिए है। sys.modules एक शब्दकोश है जहां कुंजी आयातित नाम (मॉड्यूल या पैकेज) हैं, और मान उनके संबंधित स्थान हैं। यहां मेरे मैक से कुछ उपयोग आउटपुट है:

$ python 
Python 2.5.1 (r251:54863, Feb 9 2009, 18:49:36) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys, os, django, google 
>>> sys.modules['sys'] 
<module 'sys' (built-in)> 
>>> sys.modules['os'] 
<module 'os' from '/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.pyc'> 
>>> sys.modules['django'] 
<module 'django' from '/Library/Python/2.5/site-packages/Django-1.1.1-py2.5.egg/django/__init__.pyc'> 
>>> sys.modules['google'] 
<module 'google' from '/usr/local/google_appengine/google/__init__.py'> 
संबंधित मुद्दे

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