Python3测试文件夹导入问题

时间:2019-10-25 16:52:48

标签: python-3.x

尝试使用文件夹结构在Python3中编写测试

package/
    __init.py__
    Foo.py
    Bar.py
test/
    __init.py__
    test_Foo.py

Foo.py

import Bar

test_Foo.py

import Foo

运行python3 -m unittest会产生No module named Foo

如果我将其更改为

from package import Foo

它将解决,但是在Foo.py中将出现错误No module named 'Bar'

如果我将Foo.py更改为

from package import Bar

测试将正确运行,但是运行python3 Foo.py会得到No module named 'package'

关于这种问题,我经历了各种各样的回答,

Running unittest with typical test directory structure

还有这个

Python3 import modules from folder to another folder

他们都没有解决这个问题

1 个答案:

答案 0 :(得分:0)

您的项目根目录(以及工作目录!)必须是 package 父级

然后每个import将采用import package.modulefrom package import module的形式。

如果您运行python packgae/Foo.pypython -m package.Foo,它将正常工作。

还可以查看pypa - sample project来了解推荐的Python项目结构。