知道文件名:line_no,其中导入了my_module

时间:2011-04-09 06:34:27

标签: python file module import

我有一个模块my_module,它使用以下文件来源(导入)许多文件:

from my_module import *

在模块内部,我可以知道导入此模块的文件是什么吗? 我想知道文件名:line_no导致了这个导入。

所以我需要的代码是:

my_module.py

print "This module is currently imported from: file:line_no = %s:%s" % what_in_here??

1 个答案:

答案 0 :(得分:5)

将其放在顶级模块代码中:

import traceback
last_frame = traceback.extract_stack()[-2]
print 'Module imported from file:line_no = %s:%i' % last_frame[:2]

您也可以使用inspect代替traceback

import inspect
last_frame = inspect.stack()[1]
print 'Module imported from file:line_no = %s:%i' % last_frame[1:3]