I have the following folder structure.
application
├── app
│ └── folder
│ └── file.py
└── app2
└── some_folder
└── some_file.py
I want to import some functions from file.py
in some_file.py
.
I've tried
from application.app.folder.file import func_name
and some other various attempts but so far I couldn't manage to import properly. How can I do this?
Note: This answer was intended for a very specific question. For most programmers coming here from a search engine, this is not the answer you are looking for. Typically you would structure your files into packages (see other answers) instead of modifying the search path.
By default, you can't. When importing a file, Python only searches the directory that the entry-point script is running from and sys.path
which includes locations such as the package installation directory (it's actually a little more complex than this, but this covers most cases).
However, you can add to the Python path at runtime:
# some_file.py
import sys
# insert at 1, 0 is the script path (or '' in REPL)
sys.path.insert(1, '/path/to/application/app/folder')
import file