Я стараюсь, чтобы проект наукоемкой данных был хорошо организован, поэтому я создал каталог внутри моего каталога src с именем utils, который содержит файл с именем helpers.py, который содержит некоторые вспомогательные функции, которые будут используется во многих сценариях. Какова наилучшая практика того, как я должен импортировать func_name из src/utils/helpers.py в файл в совершенно другом каталоге, например src/processing/clean_data.py?
Я вижу ответы на этот вопрос, и я реализовал решение, которое работает, но это кажется уродливым:
 sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))))
Я делаю это правильно? Нужно ли добавлять это к каждому script, который хочет импортировать func_name, например train_model.py?
Моя текущая структура папок проекта:
myproject
    /notebooks
        notebook.ipynb
    /src
        /processing
            clean_data.py
        /utils
            helpers.py
        /models
            train_model.py
        __init__.py
Примеры файлов:
# clean_data.py
import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))))
from src.utils.helpers import func_name
func_name()
# helpers.py
def func_name():
    print('I'm a helper function.')