在Python 3中出现ModuleNotFoundError,但在Python 2中没有

在Python 3中出现ModuleNotFoundError,但在Python 2中没有,python,python-3.x,python-import,importerror,Python,Python 3.x,Python Import,Importerror,我有一个项目,我想在不同的机器上运行,而不需要修改PYTHONPATHenvironment变量。我的项目结构如下: awesome_project/ data/ scripts/ __init__.py predict/ importer/ __init__.py __init__.py predict.py train/ importer/ __init__.py __

我有一个项目,我想在不同的机器上运行,而不需要修改
PYTHONPATH
environment变量。我的项目结构如下:

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
在我的预测和训练代码中,我需要导入UTIL中配置文件中定义的变量。在Python2中,我定义了
导入器
模块,其中
初始化
具有以下代码:

import sys
from os import getcwd
from os.path import sep

root_path = sep.join(getcwd().split(sep)[:-2])
sys.path.append(root_path)
这是一种魅力。我从scripts.utils.configuration import models\u 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'
回溯(最近一次呼叫最后一次):
文件“predict.py”,第11行,在
从scripts.utils.configuration导入模型\u路径
ModuleNotFoundError:没有名为“scripts.utils”的模块

我做错了什么?

在违规提交之前的
sys.path中有什么?@Goyo它是一个向量,如下所示:
[,'/home/ubuntu/carlos/permit\u classification']
最后一个是我想添加的模块,它应该在哪里查找模块
脚本
,所以
awesome\u项目
实际上是
/home/ubuntu/carlos/permit\u classification
,你想导入的模块是
/home/ubuntu/carlos/permit\u classification/scripts/utils/configuration.py
?@Goyo正确,我注意到评论后出现了差异。您可以只导入
脚本吗?可能还有另一个模块/包在跟踪你的。在违规提交之前,
sys.path
中有什么内容?@Goyo它是一个向量,如下所示:
[,'/home/ubuntu/carlos/permit\u classification']
最后一个是我想添加的模块,它应该在哪里查找模块
脚本
,所以
awesome\u项目
实际上是
/home/ubuntu/carlos/permit\u classification
,你想导入的模块是
/home/ubuntu/carlos/permit\u classification/scripts/utils/configuration.py
?@Goyo正确,我注意到评论后出现了差异。您可以只导入
脚本吗?可能有另一个模块/包在跟踪您的模块/包。