告诉 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语句。
我有一个很普通的源代码仓库,像下面这样的结构:
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语句。