My directory structure: MusicProcessing │ main.py │ ├───scripts │ │ checkFile.py │ │ list_audio_file_test.py │ │ list_test.py │ │ test.py │ ├───src │ │ __init__.py │ │ │ ├───audio_info │ │ │ audio_metadata.py │ │ │ __init__.py │ │ │ ├───dir_processing │ │ │ directory_processing.py │ │ │ __init__.py │ │ │ ├───generated_files │ │ │ __init__.py From \MusicProcessing, I want to debug \scripts\list_audio_file_test.py I get: Traceback (most recent call last): File "D:\MusicProcessing\scripts\list_audio_file_test.py", line 1, in <module> from src.dir_processing import DirectoryProcessing ModuleNotFoundError: No module named 'src' The script contents: from src.dir_processing import DirectoryProcessing dir_processing = DirectoryProcessing(r"H:\Music") dir_processing.get_audio_list_files() \src\dir_processing\__init__.py contents: ''' @brief Package with directory_processing module ''' # using absolute import as don't expect to be re-organizing directories from src.dir_processing.directory_processing import DirectoryProcessing ## @var __all__ # @brief Exposes class for importing by other modules. # @details In modules needing the class, add `src.dir_processing.directory_processing import DirectoryProcessing` __all__ = ['DirectoryProcessing'] If I move list_audio_file_test.py to the root, it runs fine. I DON'T want to move it. The scripts directory exists for one off concepts/quick sanity testing. I want to debug it (the project is in VS Code), so command line python.exe -i -m scripts.list_audio_file_test is not an option. I don't know how to resolve the sibling sub directory import throwing the ModuleNotFoundError. Continue reading...