Tox不尊重自定义环境中已定义的环境列表



给定以下tox.ini文件:

[tox]
envlist = py39
isolated_build = True
requires =
tox-poetry-dev-dependencies
[testenv]
description = Default environment
commands =
python --version
[testenv:mytestenvironment]
commands =
python --version

我期望$ tox -r$ tox -r -e mytestenvironment都产生Python 3.9.7,然而,后面的陈述产生Python 3.10.0。我的本地环境,通过$ python3 --version确认默认环境是3.9.7;我相信3.10.0是从brew upgrade(显然是最新的tox)引入的,3.24.4需要Python>=3.10.0

问题是:我如何修改tox.ini来强制使用Python 3.9?

您希望在testenv中使用basepython,因为👍envlist只是默认的目标环境,而不是环境的配置。

为了子孙后代,下面的人解决了这个问题(c/o @Yeti)

[tox]
envlist = py39
isolated_build = True
requires =
tox-poetry-dev-dependencies
[testenv]
description = Default environment
basepython = python3.9
commands =
python --version
[testenv:mytestenvironment]
commands =
python --version

文档:Tox Configuration Specification::Tox Environment Settings::basepython

您可以放入testenv*部分的完整设置列表:

basepython(NAME-OR-PATH)

将用于创建虚拟环境的Python解释器的名称或路径,这在实践中决定了我们将创建虚拟隔离环境的Python。使用它来指定毒素环境的python版本。如果未指定,则使用虚拟环境因素(例如名称部分)自动设置一个。例如,py37表示python3.7,py3表示python3,py表示python。provision_tox_env环境不会从toxenv部分继承此设置。

同样,[testenv]部分是"父"对于那些没有从文档中轻松理解这一点的人。

相关内容

  • 没有找到相关文章

最新更新