我有一个项目,希望在不同的机器上运行,而无需修改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'
我在做什么错了?