Python使用哪个包?

时间:2013-07-10 05:44:31

标签: python package

我看到可以安装几个版本的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包?

有些软件包可以崩溃并查看回溯。但是,我不认为这是最好的方法!

2 个答案:

答案 0 :(得分:7)

__file__属性会告诉您:

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

.pyc是已编译的文件,因此在这种情况下您实际查找的文件是/usr/lib/python2.7/unittest/signals.py文件。

答案 1 :(得分:3)

我希望我理解正确,但是这里是你如何找到你加载的模块的位置:

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