【问题标题】:Python importing a module: how to track its orgin PYTHONPATH, sys, osPython 导入模块:如何跟踪其来源 PYTHONPATH、sys、os
【发布时间】:2012-03-11 18:31:51
【问题描述】:
模块 nosetests 在我的计算机上随处运行(它不应该只在几个指定的地方运行)。我想这是因为我不小心将模块 nosetests 添加到了 PYTHONPATH 中,方法是直接将它放在 dist-packages 或 site-packages 中,或者告诉 python 每次都永久地查找它。
我熟悉一些命令,例如 find、import os、import sys 和 PYTHONPATH,但我似乎无法找到一种方法来追踪允许这种情况发生的罪魁祸首目录。
类似
>>> find . -name "*nosetests"* -print
任何帮助都会很棒。
【问题讨论】:
标签:
python
pythonpath
nosetests
【解决方案1】:
按照@Adam 的建议,检查nosetests.__file__ 就足够了。但是还有一种更通用的方法:inspect 模块,它也适用于没有__file__ 属性的类和其他对象。
import inspect, nosetests
print inspect.getsourcefile(nosetests)
【解决方案2】:
我们来看这个例子:
>>> import itertools
>>> print itertools.__file__
/usr/lib/python2.7/lib-dynload/itertools.so
>>> import string
>>> print string.__file__
/usr/lib/python2.7/string.pyc