I feel like this should be very obvious, yet I'm not finding the correct search terms. I can run a file from the root of my project, but not from a subdirectory. How do I fix this? I have a directory tree that looks like this: $ tree . ├── kalman │ ├── find_observibility.py │ ├── __init__.py │ ├── kalman.py │ └── model.py find_observibility.py imports from kalman. If I copy find_observibility.py into the root of my project, it runs just fine. However, when I try to run it from its subdirectory, I get an error: $ ./kalman/find_observibility.py Traceback (most recent call last): File "/home/tim/Documents/software/cl_kalman/./kalman/find_observibility.py", line 3, in <module> from kalman import outputJacobian, stateJacobian, stateTransition File "/home/tim/Documents/software/cl_kalman/kalman/kalman.py", line 6, in <module> from kalman.model import modelOutput, stateTransition ModuleNotFoundError: No module named 'kalman.model'; 'kalman' is not a package Here's find_observability.py: #! /usr/bin/env python3 from kalman import outputJacobian, stateJacobian, stateTransition from make_flight import Rising, Rounds if '__main__' == __name__: print('oh my') Here's kalman/__init__.py: from .model import initialState, modelOutput, stateTransition from .kalman import outputJacobian, stateJacobian Clues would be appreciated. Solutions even more. Thanks in advance. Continue reading...