Skip to content Skip to sidebar Skip to footer

Importing Classes From Another Directory - Python

Current Location: ProjectName/src Classes Location: ProjectName/Factory Modules/Factory Classes Try 1: from FactoryClass1 import FactoryClass1 Try 2: import sys sys.path.append(pa

Solution 1:

You may try something like:

import os.path, sys
# Add current dir to search path.
sys.path.insert(0, "dir_or_path")
# Add module from the current directory.
sys.path.insert(0, os.path.dirname(os.path.abspath(os.path.realpath(__file__))) + "/dir")

Which will add your directory to Python search path. Then you may import as usual.

To see which paths has been added, check by:

import sys
from pprint import pprint
pprint(sys.path)

If still doesn't work, make sure that your module is the valid Python module (should contain __init__.py file inside the directory). If it is not, create empty one.


Alternatively to just load the classes inline, in Python 3 you may use exec(), for example:

exec(open(filename).read())

In Python 2: execfile().

See: Alternative to execfile in Python 3.2+?


If you run your script from the command-line, you can also specify your Python path by defining PYTHONPATH variable, so Python can lookup for modules in the provided directories, e.g.

PYTHONPATH=$PWD/FooDir ./foo.py

For alternative solutions check: How to import other Python files?

Post a Comment for "Importing Classes From Another Directory - Python"