2013-07-10 12 views
5

widzę, że można mieć kilka wersji pakietu zainstalowanego Pythona:Który pakiet jest używany w Pythonie?

$ 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 

Jak mogę sprawdzić, która wersja pakietu (to który plik, który nie numer wersji) aplikacja korzysta? Ignorując oczywiste "Zim użyje pakietu na /usr/lib/pymodules/python2.7/zim/signals.py" jest sposób, aby zobaczyć, który plik jest używany dla konkretnego pakietu Python?

Niektóre pakiety mogę rozbić i spojrzeć na ślad. Nie sądzę jednak, że jest to najlepsza metoda!

Odpowiedz

7

Atrybut __file__ powie:

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

.pyc są kompilowane pliki, więc plik, który faktycznie szukasz w tym przypadku pliku /usr/lib/python2.7/unittest/signals.py.

+0

Dziękuję Lennart! – dotancohen

3

Mam nadzieję, że dobrze zrozumiałem, ale oto jak się dowiedzieć lokalizację modułu załadowanego:

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

Dziękuję bardzo. – dotancohen

Powiązane problemy