Python导入模块:如何跟踪它的orgin PYTHONPATH,sys,os

时间:2012-03-11 18:31:52

标签: python pythonpath nosetests

模块nosetests在我的计算机上运行(它不应该只在几个指定的位置运行)。我想这是因为我不小心将模块测试添加到PYTHONPATH中,或者直接将它放在dist-packages或site-packages中,或者让python每次都永久地查找它。

我熟悉一些命令,比如find,import os,import sys和PYTHONPATH,但我似乎无法找到一种方法来追踪罪魁祸首目录,以便发生这种情况。

类似

>>> find . -name "*nosetests"* -print

任何帮助都会很棒。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

要解决您的问题,就像@Adam建议的那样检查nosetests.__file__就足够了。但是有一种更通用的方式:inspect模块,它也适用于没有__file__属性的类和其他对象。

import inspect, nosetests
print inspect.getsourcefile(nosetests)