发现python模块路径

discover path of python module

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Retrieving python module path

假设我有3个python文件中的代码。x.py、y.py、z.py。

x调用y和y调用z。在z.py中的代码中,我想知道x.py在哪个目录中。

有什么函数可以告诉我这个吗?

编辑忘记Z.Py。我只想让y.py打印出x.py的路径。编辑

请注意,系统有30个不同的文件,所有这些文件都名为x.py,位于不同的目录中。


如果z.py中的代码已间接导入x.py中,则该代码将位于sys.modules中。所以尝试:

1
2
3
module = sys.modules.get('x')
if module is not None:
    print module.__file__


进口x,评估x.__file__


在这种情况下,这些进口可能导致连锁进口。因此,在某些函数中,命名空间导入主模块。

1
2
3
def where_is_x():
    import __main__
    print __main__.__file__