如果使用setuptools安装python包,然后从标准python脚本执行该包中的方法,是否可以获取调用/执行文件的文件路径?
例如,我正在执行的文件是/usr/foo/bar.py
,如下所示:
import baz
baz.get_current_path()
# should print /usr/foo/bar.py
并且使用setuptools安装了包baz
,它位于那个神奇的地方,所有python软件包都安装好了。
__file__
和import inspect; inspect.currentframe().f_code.co_filename
都会返回包文件的路径。
这可能吗?
答案 0 :(得分:1)
使用inspect.getouterframes()
或inspect.stack()
,然后从调用框架中获取文件名。