假设我有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,位于不同的目录中。
答案 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__