6

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

アプリケーションが使用しているパッケージのバージョン (つまり、バージョン番号ではなく、どのファイル) を確認するにはどうすればよいですか? 明らかな「Zimはパッケージを使用します」を無視して/usr/lib/pymodules/python2.7/zim/signals.py、特定のPythonパッケージに使用されているファイルを確認する方法はありますか?

一部のパッケージは、クラッシュしてバックトレースを見ることができます。ただし、これが最善の方法だとは思いません。

4

2 に答える 2

8

属性は次の__file__ことを示します。

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

.pycコンパイルされたファイルなので、この場合実際に探しているファイルは/usr/lib/python2.7/unittest/signals.pyファイルです。

于 2013-07-10T05:50:49.130 に答える
3

正しく理解できたと思いますが、ロードしたモジュールの場所を見つける方法は次のとおりです。

shell> python -c 'import jinja2; print jinja2.__file__'
/Library/Python/2.7/site-packages/jinja2/__init__.pyc
于 2013-07-10T05:51:21.617 に答える