Python模块导入问题子目录

时间:2014-05-24 23:04:26

标签: python import module directory

我的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技巧。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

相对进口

  1. 确保所有文件夹中都有__init__.py,包括最顶层(父级)
  2. 使用相对导入,如下所示:

    from ..src import measurement_agent

  3. 现在运行代码,cd到父目录的父目录,然后

    python -m parent.test.regression