我看到可以安装几个版本的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包?
有些软件包可以崩溃并查看回溯。但是,我不认为这是最好的方法!
答案 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