How to access a module from outside your file folder in Python?

Question:

How can I access modules from another folder?

Here’s the file structure:

/<appname>
    /config
        __init__.py
        config.py
    /test
        test.py # I'm here

I wanted to access the functions from config.py from test.py . How would I do this?
Here is my import:

import config.config

When I run the test.py script, it will always say:

ImportError: No module named config.config

Did I do something wrong?

Answers:

Add the app directory to the module search path.

For example:

PYTHONPATH=/path/to/appname python test.py
Answered By: falsetru

Yo can only import modules that are visible by your environment. You can check the environment using this.

import sys
print sys.path

As you will see sys.path is a list so you can append elements to it:

sys.path.append('/path_to_app/config')

And you should be able to import your module.

BTW: There is plenty of questions about this.

Answered By: Hristo Ivanov

The simplest way is to modify the sys.path variable (it defines the import search path):

# Bring your packages onto the path
import sys, os
sys.path.append(os.path.abspath(os.path.join('..', 'config')))

# Now do your import
from config.config import *
Answered By: aruisdante
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.