我从来没有真正完全了解过Python中如何处理软件包,现在我对此有疑问。但是当我发现该主题确实令人困惑时,谷歌搜索似乎无济于事。
我有一个结构如下的项目:
project_name/
src/
main.py
utils/
string_utils.py
tests/
test_string_utils.py
我正在使用Pytest进行单元测试,目前在“ test_string_utils.py”文件中,我具有以下内容:
from ..src.utils.string_utils import StringUtilsClass
但是我转到文件夹“ project_name”并尝试使用以下任何命令运行测试,但都会收到错误消息:
$ pytest tests/
ValueError:尝试了相对顶级包之外的商品的导入
我知道python的-m参数,但似乎运行“ pytest -m”具有完全不同的行为。
我该如何解决?我使用了错误的文件夹体系结构吗?我不认为我要构建的是pip包(可以简化导入)
答案 0 :(得分:1)
您是否尝试过:from src.utils.string_utils import StringUtilsClass
在.src之前没有..?
或from string_utils import StringUtilsClass