发现python模块的路径

时间:2011-10-12 13:36:54

标签: python

  

可能重复:
  Retrieving python module path

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

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

有没有能告诉我这个的功能?

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

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

导入x并评估x.__file__

答案 2 :(得分:0)

在这种情况下,这些进口可能导致进口链。因此,在某些函数名称空间中导入 main 模块。

def where_is_x():
    import __main__
    print __main__.__file__