There are python files a.py and b.py. And b.py is imported in a.py by import b.
How to get the absolute path of a.py in b.py when a.py runs?
Asked
Active
Viewed 43 times
1
-
3Possible duplicate of [How to retrieve a module's path?](https://stackoverflow.com/questions/247770/how-to-retrieve-a-modules-path) – bhansa Jul 04 '19 at 09:08
1 Answers
0
b.py
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 ...