../project_root/
bin/relative_path_explained.py
lib/my_module.py
import os
import sys
print(__file__)
print(os.path.abspath(__file__))
print(os.path.dirname(os.path.abspath(__file__)))
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print(project_root)
mypath = os.path.join(project_root, 'lib')
print(mypath)
sys.path.insert(0, mypath)
import my_module
my_module.run()
examples/project_root/bin/relative_path_explained.py
/home/gabor/work/slides/python/examples/project_root/bin/relative_path_explained.py
/home/gabor/work/slides/python/examples/project_root/bin
/home/gabor/work/slides/python/examples/project_root
/home/gabor/work/slides/python/examples/project_root/lib
Hello from my_module