ModuleNotFoundError в Python 3, но не в Python 2 - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть проект, который я хочу запустить на разных машинах без необходимости изменения переменной окружения 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'

Что я делаю неправильно?

...