I have a python module here /root/python/foo.py. I have a bunch of other modules here in the folder /root/lib/ which looks like this
    lib/
    |
    ├─ module1/
    |  ├─ __init__.py
    |  └─ bar.py
    |
    └─ module2/
       ├─ __init__.py
       └─ bar.py
I would like to import /root/lib/module1 and /root/lib/module2 from foo.py. I would like to not have to add /root/lib/ to the python system path. This stack overflow answer tells you how to use either imp.load_source, importlib.machinery.SourceFileLoader, or the importlib.util class to load a module from a file (depending on the python version). I think these only work if the module is a single file. If I try something like this in Python 3.4
from importlib.machinery import SourceFileLoader
problem_module = SourceFileLoader('test_mod', '/root/lib/module1').load_module()
I get an IsADirectoryError
My question is whether there is a similar way to load a module (given its full path) if it is a directory, without adding the whole lib/ folder to the system path?
 
     
     
    