Python 为什么pytest总是说;ImportError:尝试在没有已知父包的情况下进行相对导入“;
我不熟悉pytest和python。我的项目结构是:Python 为什么pytest总是说;ImportError:尝试在没有已知父包的情况下进行相对导入“;,python,import,pytest,Python,Import,Pytest,我不熟悉pytest和python。我的项目结构是: projroot/ |-src/ |-a.py |-test/ |-test_a.py 而测试_a.py是: from..src导入a def测试_a(): 通过 然后在projroot下运行pytest: projroot>pytest 并且始终存在错误信息:E ImportError:尝试在没有已知父包的情况下进行相对导入。 Windows10x64上的Python verison:3.8。 我读了很多文章和博客,但还
projroot/
|-src/
|-a.py
|-test/
|-test_a.py
而测试_a.py是:
from..src导入a
def测试_a():
通过
然后在projroot
下运行pytest
:
projroot>pytest
并且始终存在错误信息:E ImportError:尝试在没有已知父包的情况下进行相对导入
。
Windows10x64上的Python verison:3.8。
我读了很多文章和博客,但还是不明白。请帮帮我 我发现我必须在
test
和projroot
中添加\uuuu init\uuuu.py
<src
中的code>\uuu init\uuu.py不是必需的。
和pytest
可以在3个文件夹中正确运行:
#项目根目录的父文件夹
C:\>pytest projroot
#项目根
C:\>cd projroot
C:\projroot>pytest
#测试文件夹
C:\projroot>cd测试
C:\projroot\test>pytest
您需要添加(可能是空的)\uuuu init\uuuu.py
文件,以便Python知道这些是包。在src
中至少有一个,可能也在test
中,也可能在projroot
中。这应该能解决你的问题。谢谢你,菲尔布兰登和纳普扎!解决了的!我发现\uuu init\uuuu.py
文件在test
和projroot
中是必不可少的,但在src
中不是。