我的Python3项目中有以下目录结构:
├── README.md
├── requirements.txt
├── schemas
│ ├── collector.sql
│ └── controller.sql
├── src
│ ├── controller.db
│ ├── controller.py
│ ├── measurement_agent.py
├── tests
│ ├── regression.py
│ ├── test-invalid-mac.py
│ ├── test-invalid-url.py
│ ├── test-register-ma-json.py
│ ├── test-register-ma-return-code.py
│ ├── test-send-capabilities-return-code.py
│ ├── test-valid-mac.py
│ └── test-valid-url.py
└── todo
在我的测试文件夹中,我有一些回归测试,用于检查src / measurement_agent.py中代码的一致性。现在的问题是我不想手动添加我的路径measurement_agent.py来从中导入。我想知道是否有任何技巧如何告诉Python在我的root中查找我想要使用的导入。
目前我在做:
import os.path
ma = os.path.abspath('..') + '/src'
sys.path.append(ma)
from measurement_agent import check_hardware_address
并希望拥有像
这样的东西from measurement_agent import check_hardware_address
不使用任何os.path技巧。
有什么建议吗?
答案 0 :(得分:1)
__init__.py
,包括最顶层(父级)使用相对导入,如下所示:
from ..src import measurement_agent
现在运行代码,cd到父目录的父目录,然后
python -m parent.test.regression