У меня есть проект, который я хочу запустить на разных машинах без необходимости изменения переменной окружения PYTHONPATH
.Моя структура проектов выглядит следующим образом:
awesome_project/
data/
scripts/
__init__.py
predict/
importer/
__init__.py
__init__.py
predict.py
train/
importer/
__init__.py
__init__.py
train.py
utils/
__init__.py
configuration.py
В моем коде предсказания и обучения мне нужно импортировать переменные, определенные в файле конфигурации, внутри utils.В Python 2 я определил модуль importer
, в котором __init__.py
имел следующий код:
import sys
from os import getcwd
from os.path import sep
root_path = sep.join(getcwd().split(sep)[:-2])
sys.path.append(root_path)
И он работал как чудо.Я импортировал переменные как: from scripts.utils.configuration import models_path
, но теперь я переношу свой код на Python 3, и это совсем не работает, я получаю следующую ошибку:
Traceback (most recent call last):
File "predict.py", line 11, in <module>
from scripts.utils.configuration import models_path
ModuleNotFoundError: No module named 'scripts.utils'
Что я делаю неправильно?