Python 3.x 告诉python解释器使用当前路径解析相对目录
我有一个非常普通的源代码存储库,如以下结构:Python 3.x 告诉python解释器使用当前路径解析相对目录,python-3.x,python-import,Python 3.x,Python Import,我有一个非常普通的源代码存储库,如以下结构: aProject |-----> __init__.py |-----> src | |-----> __init__.py | |-----> file1.py | |-----> file2.py | |-----> test |-----> __init__.py |-----> test_file1.py |--
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目录运行unittest模块,augmentationFile.py中的sys.path将“”显示为其第一个参数。这使python能够找到相对的src目录
但是,当我从类似的项目目录运行时,这次使用python test/augmentationFile.py
,python将sys.path[0]设置为test文件夹,并且无法解析from src import*
语句并发出抱怨
我如何告诉python解释器(我可能会错误地找到一个合适的标志来阅读)正确地推断目录?我想到的一个选项是将augmentationFile.py的import语句更改为if语句,检查sys.path并决定是否从“.src”或“src”导入。在每一个类似的情况下都不得不这样修改源代码,这让我很害怕。
因此,我要问的是,考虑到当前工作目录,是否以及如何告知解释器解析相对路径?
谢谢,当我特意将该文件作为一个模块运行时,它解决了:
python-mtest.augmentationFile
。问题在于src语句的错误位置,它位于代码内部,不是一个普通的导入语句。这是我用来获取工作目录的内容&继续其余操作import os path=os.getcwd()