2013-07-10 33 views
5

Tôi thấy rằng người ta có thể có một vài phiên bản của một gói Python cài đặt:Gói nào sử dụng Python?

$ locate signals.py | grep python 
/usr/lib/pymodules/python2.7/zim/signals.py 
/usr/lib/pymodules/python2.7/zim/signals.pyc 
/usr/lib/python2.7/dist-packages/bzrlib/smart/signals.py 
/usr/lib/python2.7/dist-packages/bzrlib/smart/signals.pyc 
/usr/lib/python2.7/unittest/signals.py 
/usr/lib/python2.7/unittest/signals.pyc 
/usr/lib/python3.2/unittest/signals.py 

Làm thế nào tôi có thể kiểm tra phiên bản của một gói (ví dụ: tập tin đó, chứ không phải phiên bản số) một ứng dụng được sử dụng? Bỏ qua hiển nhiên "Zim sẽ sử dụng gói tại /usr/lib/pymodules/python2.7/zim/signals.py" là có cách nào để xem tệp nào đang được sử dụng cho một gói Python cụ thể không?

Một số gói mà tôi có thể gặp sự cố và xem xét backtrace. Tôi không nghĩ rằng đây là phương pháp tốt nhất, tuy nhiên!

Trả lời

7

Thuộc tính __file__ sẽ cho bạn biết:

>>> from unittest import signals 
>>> signals.__file__ 
'/usr/lib/python2.7/unittest/signals.pyc' 

.pyc đang tập tin biên dịch, vì vậy các tập tin mà bạn thực sự đang tìm kiếm trong trường hợp này nó file /usr/lib/python2.7/unittest/signals.py.

+0

Cảm ơn bạn Lennart! – dotancohen

3

Tôi hy vọng tôi hiểu một cách chính xác, nhưng dưới đây là cách bạn tìm ra vị trí của các module bạn nạp:

shell> python -c 'import jinja2; print jinja2.__file__' 
/Library/Python/2.7/site-packages/jinja2/__init__.pyc 
+0

Cảm ơn bạn rất nhiều. – dotancohen

Các vấn đề liên quan