2010-04-15 32 views
5

Tôi đang cố sửa đổi thư viện python mà tôi đã tải xuống và đang sử dụng. Nhưng những thay đổi tôi đang làm không làm gì cả. Vì vậy, tôi nghi ngờ rằng python đang nhập một bản sao khác của thư viện này từ một nơi khác trên hệ thống tập tin. Vì vậy ...Làm thế nào tôi có thể cho biết thư mục nào được nhập vào thư viện đến từ python?

Khi tôi chạy import foolib trong python, làm cách nào tôi có thể biết vị trí của hệ thống tệp mà thư viện đó nhận được từ đâu?

Trả lời

6
import foolib 
print foolib.__file__ 

Thật không may, điều này chỉ hoạt động đối với một số mô-đun. Ví dụ. nó hoạt động trên một mô-đun tôi đã viết, nhưng không hoạt động trên sys.

2

Nhìn vào số foolib.__file__.

8

câu trả lời đúng là sử dụng sys.modules ... nó hoạt động trên mọi thứ, thậm chí sys. sys.modules là từ điển trong đó các khóa là các tên được nhập (mô-đun hoặc gói) và các giá trị là vị trí tương ứng của chúng. đây là một số đầu ra sử dụng từ máy Mac của tôi:

$ 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'> 
Các vấn đề liên quan