如何获取导入某个包的python文件的路径?
有python文件如何获取导入某个包的python文件的路径?,python,module,Python,Module,有python文件a.py和b.py。而b.py是通过import b在a.py中导入的。 当a.py运行时,如何在b.py中获取a.py的绝对路径?b.py 导入操作系统 导入回溯 尝试:断言0 除: st=回溯。格式\u堆栈() #st-->[“文件名”的格式,第1行,在导入b\n'中,…] 相对_p=st[0]。拆分(',')[0]。拆分(“”)[-1]。拆分('”)[1] abs\u path=os.path.abspath(相对路径) 打印(abs\u路径) #打印导入器的路径,否则如
a.py
和b.py
。而b.py
是通过import b
在a.py
中导入的。
当a.py
运行时,如何在b.py
中获取a.py
的绝对路径?b.py
导入操作系统
导入回溯
尝试:断言0
除:
st=回溯。格式\u堆栈()
#st-->[“文件名”的格式,第1行,在导入b\n'中,…]
相对_p=st[0]。拆分(',')[0]。拆分(“”)[-1]。拆分('”)[1]
abs\u path=os.path.abspath(相对路径)
打印(abs\u路径)
#打印导入器的路径,否则如果没有导入器,则打印其自身的abs路径
#程序的其余部分在这里。。。
b.py
导入操作系统
导入回溯
尝试:断言0
除:
st=回溯。格式\u堆栈()
#st-->[“文件名”的格式,第1行,在导入b\n'中,…]
相对_p=st[0]。拆分(',')[0]。拆分(“”)[-1]。拆分('”)[1]
abs\u path=os.path.abspath(相对路径)
打印(abs\u路径)
#打印导入器的路径,否则如果没有导入器,则打印其自身的abs路径
#程序的其余部分在这里。。。
import os
import traceback
try: assert 0
except:
st = traceback.format_stack()
# format of st --> [' File "filename", line 1, in <module>\n import b\n', ... ... ]
relative_p = st[0].split(',')[0].split(' ')[-1].split('"')[1]
abs_path = os.path.abspath(relative_p)
print(abs_path)
# prints the importer's path, else if no importer, then itself's abs path
# rest of program goes here ...