Tox 找不到需求文件

Tox does not find the requirements file

我有一个 Python 模块,其中 setup.py 脚本启动如下:

import setuptools, pathlib

HERE = pathlib.Path(__file__).parent
README = (HERE / "README.md").read_text()
REQUIRES = (HERE / "requirements.txt").read_text().strip().split("\n")

setuptools.setup(
   install_requires=REQUIRES,
   long_description=README,
   ...
)

当我从命令行运行设置时,像这样:

python setup.py sdist

它运行很好。但是当我 运行

tox

我在文件 setup.py 的第 5 行收到错误:

FileNotFoundError: [Errno 2] No such file or directory: 'requirements.txt'

即使 requirements.txt 文件和 README.md 文件都保留在与 setup.py 相同的文件夹中。

这是我的 tox.ini 文件:

[tox]
envlist = py39

[testenv]
deps =
    pytest
    -r requirements.txt
commands =
    pytest

如何让 tox 找到我的 requirements.txt 文件?

我自己找到了答案。问题是 requirements.txt 没有包含在我的 'MANIFEST.in' 文件中。我将文件更改为:

include pyproject.toml
include *.md
include *.txt
include LICENSE

现在 tox 有效。

作为对 Erel 正确答案的补充。

根据配置,tox 构建项目,安装构建工件,然后对其进行测试。这是一件好事,因为只有这样你才能测试你发布的内容,而不是源代码树中的内容。

为了不忘记在MANIFEST.in文件中包含文件,我一般使用check-manifesttool/linter,见https://pypi.org/project/check-manifest/

两个小音符