Tox no respeta la lista de entornos definida en entornos personalizados

-1

Dado el siguiente archivo 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

Estoy esperando $ tox -ry $ tox -r -e mytestenvironmentceder Python 3.9.7, sin embargo, la declaración posterior cede Python 3.10.0. Mi entorno local, a través, $ python3 --versionconfirma que el entorno predeterminado es 3.9.7; Creo que 3.10.0se introdujo desde un brew upgrade(aparentemente el último tox , 3.24.4requiere Python>=3.10.0

La pregunta es: ¿cómo modifico tox.ini para forzar el uso de Python 3.9 ?

1

Desea usar basepython en testenv para eso 👍 envlist es solo entornos de destino predeterminados, no configuración para entornos.

0

Para la posteridad, lo siguiente resolvió el problema (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

La documentación: Especificación de configuración de Tox :: Configuración del entorno de Tox :: basepython

Complete list of settings that you can put into testenv* sections:

...

basepython(NAME-OR-PATH)

Name or path to a Python interpreter which will be used for creating the virtual environment, this determines in practice the python for what we’ll create a virtual isolated environment. Use this to specify the python version for a tox environment. If not specified, the virtual environments factors (e.g. name part) will be used to automatically set one. For example, py37 means python3.7, py3 means python3 and py means python. provision_tox_env environment does not inherit this setting from the toxenv section.

...

Además, la [testenv]sección es el "padre" para cualquier otra persona que no lo haya captado fácilmente de la documentación.