Python is a powerful language that offers many useful features. Typically, we need to import modules and packages in every python script, in order to be able to use its functions and member variables. Sometimes, you may need to import from another folder or directory in Python. In this article, we will look at how to import from another folder in Python.
How to Import from Another Folder in Python
Typically, python looks for packages in the present folder of the script being executed, and the folders listed in python’s environment PATH variable. Let us say you have main.py script in folder 1 and module.py in folder 2, and you want to import module.py in main.py.
- Folder_1 - main.py - Folder_2 - module1.py
Let us say module.py has function hello_world(). There are two ways to do this – using sys module, and using PYTHONPATH environment variable.
1. Using sys module
You can use sys.path function to add the folder location of module to the system path, so that python will search it for the module, in case it is unable to find it in the script’s present directory. Since sys.path is a list, you can use append or insert function to add the module folder location. Here is an example to import module.py in main.py.
# importing sys import sys # adding Folder_2 to the system path sys.path.insert(0, '/home/ubuntu/Desktop/Folder_2') #alternatively you can use sys.path.append('/home/ubuntu/Desktop/Folder_2') # importing the hello_world function from module1 import hello_world ...
2. Using Pythonpath
sys.path function needs to be called in all your python scripts, if you want to import module from another folder. If you need to import module in many of your scripts, then it is advisable to simply add this folder location to PYTHONPATH folder. Thereafter, you won’t need to use sys.path in any of your scripts. You can directly import the desired module and python will be able to find it for you.
Here is the command to add the folder to PYTHONPATH variable.
$ export PYTHONPATH='/home/ubuntu/Desktop/Folder_2'
You can check if it has been added correctly using echo command.
$ echo PYTHONPATH
$ set PYTHONPATH='C:\ubuntu\Desktop\Folder_2'
In this case, however, you need to have the permission to set environment variables on your system.
That’s it. In this article, we have seen how to import modules from another folder in Python. If you just want to import the module once, you can use sys.path. If you want to import it in multiple scripts, directly add the folder location to PYTHONPATH envionment variable.