假设我有两个Python模块,并且path_b在导入路径中:
# file: path_b/my_module.py
print "I was imported from ???"
#file: path_a/app.py
import my_module
是否可以查看模块从何处导入?如果我启动app.py(因为我需要文件名),我想要一个类似“我是从路径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
可能有一种更简单的方法可以做到这一点,但这是可行的:
请注意,如果路径是脚本位置的父目录,则它将相对于当前工作目录打印。
试试这个:
编辑
在这种情况下,写入模块的
__init__.py
文件:尝试
my_module.__file__
找出它的来源。如果您得到一个AttributeError
,那么它可能不是一个Python源文件(.py)。相关问题 更多 >
编程相关推荐