我正在为更大的机器学习应用程序编写一些脚本。为了保持结构良好,我有一些用于不同步骤的子目录,例如
/
/preprocessing (containing preprocess.py)
/training (containing train.py)
/utils (config.py)
所以我想要的是在预处理和训练模块中使用来自 utils 的代码的干净可能性。但是,问题是我直接在子目录中运行代码,例如
cd preprocessing
python3 preprocess.py
所以这意味着预处理是我的主模块,它看不到更高目录中包含的任何内容,因此我也无法从 utils 导入模块。
我知道有一些可能性,包括更改 PYTHONPATH,但我发现这有点难看。每个使用我的代码的人都必须这样做。所以我的问题是是否有一种干净且推荐的方法从父目录或同级目录导入代码。
最佳答案
您可以使用相对导入,如 documentation 中所示。 。因此,您可以在 preprocess
模块中尝试类似的操作:
from ..utils import config
关于python - 在 Python 中共享存储在更高目录中的模块和类的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51650710/