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