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
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.
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 *
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?
Add the app directory to the module search path.
For example:
PYTHONPATH=/path/to/appname python test.py
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.
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 *