У меня есть проект python $MY_PROJECT
, где записные книжки python находятся в папке $MY_PROJECT/Analysis/src/notebooks
, а файлы python находятся в $MY_PROJECT/Analysis/src/notebooks/scripts
.
Внутри каждой записной книжки я Получите эти инструкции, чтобы загрузить файлы python, которые находятся в папке сценариев. Позже я импортирую метод в записную книжку, как показано ниже.
module_path = os.path.abspath(os.path.join('./scripts'))
if module_path not in sys.path:
sys.path.append(module_path)
from scripts.parser import load_static_data
Внутри папки scripts
есть файл (parser.py
) с методом __main__
. Я решил в этом файле не добавлять модуль сценариев в sys.path
, потому что файл уже находится в папке scripts
.
Если я попытаюсь запустить parser.py
в командной строке, я получите ошибку ниже.
python scripts/parser.py input1 ./output-folder
Traceback (most recent call last):
File "scripts/parser.py", line 10, in <module>
from scripts.data_loading import load_static_data
ModuleNotFoundError: No module named 'scripts'
Как я могу определить, что каждый раз, когда я запускаю файл python или записную книжку, классы загружаются из папки проекта root (т.е. $MY_PROJECT
) ?