Import py file in another directory in Jupyter notebook

I've solved this problem in the past by creating a symbolic link in the directory where the Jupyter notebook is located to the library it wants to load, so that python behaves as if the module is in the correct path. So for the example above, you would run the following command once per directory inside a Jupyter cell:

!ln -s /user/project/functions.py functions.py

and then you could import with

import functions

Note: I've only tried this on Linux and Mac Os, so I can't vouch for Windows.


Assuming you have a folder name Jupyter and you wish to import modules (employee) from another folder named nn_webserver.

visualizing it:

enter image description here

do this:

import sys
import os

module_path = os.path.abspath(os.path.join('..'))
if module_path not in sys.path:
    sys.path.append(module_path+"\\nn_webserver")

from employee import motivation_to_work

see additional information here from @metakermit


There is no simple way to import python files in another directory. This is unrelated to the jupyter notebook

Here are 3 solutions to your problem

  1. You can add the directory containing the file you want to import to your path and then import the file like this:
import sys  
sys.path.insert(0, '/path/to/application/app/folder')

import file
  1. You can create a local module by having an empty __init__.py file in the folder you want to import. There are some weird rules regarding the folder hierarchy that you have to take into consideration.

  2. You can create a module for the file you wish to import and install it globally.