我有以下目录树(Python 2.7):
./pkg
./main.py
./A
./a.py
./B
./b.py
./C
./c.py
a.py,b.py和c.py需要相互导入,所以我有两个选择:
使用相对导入,这意味着我必须从./pkg/main.py或目录树顶部的其他文件启动程序。 这非常好,但是当我将测试写入其中一个文件时,问题就出现了。我无法在导入a.py的./main/A中编写测试,因为a.py无法使用b.py和c.py,因此唯一的方法是编写测试函数在./main。
将 sys.path 添加到每个文件中的./main的absulote路径中。这意味着我必须为所有文件写相同的三行,如果我有300个文件而不是3个,那就太痛苦了(很可能,不是最好的文件)。
那么,我该怎么办?
答案 0 :(得分:0)
使用相对导入。
如果pkg是项目的根路径,请使用:
python -m unittest A.a
进行导入工作。