如何从tox.ini文件中读取pyproject.toml中的项目版本号?

0 投票
1 回答
37 浏览
提问于 2025-04-12 21:07

我想在我的 tox.ini 文件中添加一个 upload 环境。可是,这需要动态获取项目的版本号;类似于:

[testenv:upload]
basepython = python3.11
skip_install = true
deps =
    twine
commands =
    twine upload dist/foo-{[project]version}.tar.gz dist/foo-{[project]version}-py3-none-any.whl

但是,这种写法不行:

% tox -e upload
upload: commands[0]> twine upload 'dist/foo-{[project]version}.tar.gz' 'dist/foo-{[project]version}-py3-none-any.whl'
ERROR    InvalidDistribution: Cannot find file (or expand pattern): 'dist/foo-{[project]version}.tar.gz'

tox.ini 文件中,正确的语法是什么,以便从 pyproject.toml 文件中读取项目版本?

1 个回答

0

Tox 本身没有一个叫做 project 的全局变量。如果你想从 pyproject.toml 文件中获取项目版本,可以这样做:

  • 在你的 tox 文件中明确设置项目版本,但这样的话你就需要在两个地方都修改项目版本。你可以使用 tox 的 setenv 命令来设置版本。

[testenv]
setenv =
    VERSION=0.01

[testenv:upload]
basepython = python3.11
skip_install = true
deps =
    twine
commands =
    twine upload dist/foo-{env:VERSION}.tar.gz dist/foo-{env:VERSION}-py3-none-any.whl

撰写回答