给定以下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
您希望在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]
部分是"父"对于那些没有从文档中轻松理解这一点的人。