如何在tox.ini文件中读取pyproject.toml存储的项目版本号?
解决tox.ini从pyproject.toml读取版本号的问题
你之前用的{[project]version}是toml文件本身的语法,tox无法直接解析,所以会把这段字符串原样保留,导致找不到对应文件名。要在tox.ini里读取pyproject.toml的版本号,得用tox内置的变量引用规则:
适配tox 4+的正确配置
[testenv:upload] basepython = python3.11 skip_install = true deps = twine commands = twine upload dist/foo-{pyproject:project.version}.tar.gz dist/foo-{pyproject:project.version}-py3-none-any.whl
兼容tox 3的写法
如果还在使用tox 3版本,需要加上完整的envconfig前缀:
[testenv:upload] basepython = python3.11 skip_install = true deps = twine commands = twine upload dist/foo-{envconfig:pyproject:project.version}.tar.gz dist/foo-{envconfig:pyproject:project.version}-py3-none-any.whl
更简便的替代方案
其实也可以不用硬写版本号格式,直接用通配符上传dist目录下所有包文件,避免版本号格式写错的问题:
[testenv:upload] basepython = python3.11 skip_install = true deps = twine commands = twine upload dist/*
内容的提问来源于stack exchange,提问作者David Banas
相关产品推荐
相关产品推荐

