How to add a new path to your PYTHONPATH to import your own python modules or packages ?

Examples of how to add a new path to your PYTHONPATH to import your own python modules or packages:


For example, I have on my local computer a reperestory called "github_projects" (located in the following path "/Users/John/github_projects") where I stored all my own python modules that I develop:


However, if I try to import a python module from another reperestory on my computer I will get the following error message:

>>> import project_01
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'project_01'

We get this error message here because python doesn't know where to find the python module project_01. A simple solution to check that is to look at sys.path:

>>> import sys
>>> sys.path

returns for example in my case:

['', '/Users/John/anaconda3/lib/', '/Users/John/anaconda3/lib/python3.6', '/Users/John/anaconda3/lib/python3.6/lib-dynload', '/Users/John/anaconda3/lib/python3.6/site-packages', '/Users/John/anaconda3/lib/python3.6/site-packages/aeosa']

can also check your PYTHONPATH using os:

>>> import os
>>> os.environ['PYTHONPATH']

Another solution to check your PYTHONPATH is to enter directly


in your terminal (not in your python interpreter!).

Adding a new path to your PYTHONPATH

To add a new path to your PYTHONPATH it is going to depend on the your shell (I used hereafter bash shell ). To get your shell just enter

echo $SHELL

returns for example


To temporary add a new path in your PYTHONPATH:

export PYTHONPATH="/Users/John/github_projects"

then if you check


it should have now:


and you can now start python (in the same window that you entered "export PYTHONPATH="/Users/John/github_projects") and try to import your module:

>>> import project_01

Another solution to make that more permanently just open the


file and add the following line:

export PYTHONPATH="/Users/John/github_projects"

It will then add automatically "/Users/John/github_projects" to your PYTHONPATH each time you open a new terminal window.

Reloading your own python module

Note: another interessting tool is to be able to reload your python (> 3.4) module:

import importlib

So you don't need to restart python each time you make some change in your python module for example "project_01". You just need to reload it:

import importlib