告诉 python 解释器采用当前路径来解析相对目录

Telling the python interpreter to take the current path for resolving relative directories

我有一个很普通的源代码仓库,像下面这样的结构:

aProject
|-----> __init__.py
|-----> src
|       |-----> __init__.py
|       |-----> file1.py
|       |-----> file2.py
|
|-----> test
        |-----> __init__.py
        |-----> test_file1.py
        |-----> augmentationFile.py

我的情况独特,test_file1.py 使用 augmentationFile.py 引用 src 目录,augmentationFile.py 中的 from src import * 语句成功找到模块。

我可以 运行 主 aProject 目录中的单元测试模块,augmentationFile.py 中的 sys.path 显示“”作为其第一个参数。这使 python 能够找到相关的 src 目录。

但是,当我从aProject目录运行一样,这次使用python test/augmentationFile.py,python将sys.path[0]设置为test文件夹,无法解析from src import *声明和投诉。

我如何告诉 python 解释器(我可能会错误地细读 python 3 document on cmdline 找到合适的标志)正确推断目录?我想到的一个选项是将 augmentationFile.py 的导入语句更改为检查 sys.path 的 if 语句,并决定是从“..src”还是“src”导入。在每一个类似的情况下都必须像这样更改源代码让我感到害怕。 因此,我问是否以及如何告诉解释器,考虑当前工作目录来解析相对路径? 谢谢,

当我故意 运行 将文件作为模块解析时:python -m test.augmentationFile。问题出在src语句的错误位置,它在代码内部,不是普通的import语句。