I am still getting my head around the import statement. If I have 2 folders in the same level:
- src
- test
How to make the py files in test import the modules in src? Is there a better solution (like put a folder inside another?)
I am still getting my head around the import statement. If I have 2 folders in the same level:
How to make the py files in test import the modules in src? Is there a better solution (like put a folder inside another?)
The code you want is for using src/module_name.py
from src import module_name and the root directory is on your PYTHONPATH e.g. you run from the root directory
Your directory structure is what I use but with the model name instead from src. I got this structure from J Calderone's blog and
__init__.py file.Try this out:
import sys import os sys.path.append(os.path.join('..', 'src')) import module_in_src_folder edited to support any platform
I have exactly the same situation as the OP with all the python projects I write:
All modules, whether in src, or test, or subfolders of these always use the form of import that Mark shows in his answer:
from src import module_name What I have done is write a module that sits in Project Folder and recursively discovers all the test modules within the test folder and gets unittest to run all those tests. As python is running in Project Folder, then modules are relative to the working directory.
This means that the tests are just like any other client that wants to modules from src.