我有一个模块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??
将其放在顶层模块代码中:
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]