0

我有以下目录树(Python 2.7):

./pkg
    ./main.py
    ./A
        ./a.py
    ./B
        ./b.py
    ./C
        ./c.py

a.py、b.py和c.py需要相互导入,所以我有两种选择:

  1. 使用相对导入,这意味着我必须从 ./pkg/main.py 或目录树顶部的另一个文件启动程序。这真的很好,但是当我对其中一个文件编写测试时问题就开始了。我无法在 ./main/A 中编写导入 a.py 的测试,因为 a.py 无法使用 b.py 和 c.py,所以唯一的方法是在 . /主要的。

  2. 将每个文件中 ./main 的绝对路径添加到sys.path中。这意味着我必须为所有文件编写相同的三行,如果我有 300 个文件而不是 3 个文件,那会很痛苦(而且很可能,不是最好的办法)。

所以我该怎么做?

4

1 回答 1

0

使用相对导入。

如果 pkg 是您项目的根路径,请使用:

python -m unittest A.a

使导入工作。

于 2015-10-26T12:50:27.540 回答