假设我有两个Python模块,并且path_b在导入路径中:
# file: path_b/my_module.py
print "I was imported from ???"
#file: path_a/app.py
import my_module
是否可以查看从哪里导入模块?如果我启动app.py(因为我需要文件名),我想要一个类似“我是从path_a / app.py导入的”的输出。
编辑: 为了更好的理解;我可以写:
# file: path_b/my_module.py
def foo(file):
print "I was imported from %s" % file
#file: path_a/app.py
import my_module
my_module.foo(__file__)
因此输出为:
$> python path_app.py
I was imported from path_a/app.py
inspect.stack(0)[1][1]。但是请注意,与在Python 3中相比,您会看到很多importlib相关的信息,因此您可能不得不进行遍历,inspect.stack(0)而不是查找所需的内容。