How do I import a Python script from a sibling directory?

If all occurring directories are Python packages, i.e. they all contain __init__.py, then you can use

from ..bar_dir import bar

If the directories aren't Python packages, you can do this by messing around with sys.path, but you shouldn't.


You can use the sys and os modules for generalized imports. In foo.py start with the lines

import sys
import os
sys.path.append(os.path.abspath('../bar_dir'))
import bar

Let's say if you have following structure:

root
  |_ productconst.py
  |_ products
     |_ __init__.py

And if you would like to import productconst in products.__init__, then following can be used :

from ..productconst import *