Tox自定义环境不遵守定义的envlist,如何修改tox.ini强制使用Python3.9
解决方案
你只需要在测试环境配置中显式指定basepython参数即可强制绑定Python 3.9版本,修改后的完整tox.ini如下:
[tox] envlist = py39 isolated_build = True requires = tox-poetry-dev-dependencies [testenv] description = Default environment basepython = python3.9 commands = python --version [testenv:mytestenvironment] basepython = python3.9 commands = python --version
说明
- 命名为
py39的默认环境会被tox自动匹配Python 3.9解释器,但自定义命名的mytestenvironment没有显式声明Python版本时,tox会优先调用自身运行时对应的Python版本,或是系统PATH优先级更高的Python解释器,这就是你调用自定义环境时返回3.10.0版本的原因。 - 你可以根据需求选择两种配置方式:
- 在根
[testenv]下配置basepython = python3.9,所有继承该配置的子环境都会默认使用Python 3.9,无需重复声明 - 如果只需要给
mytestenvironment单独指定版本,仅在对应环境的配置块下添加basepython = python3.9即可
- 在根
- 若修改后执行tox时报错找不到
python3.9,可以把basepython的值替换为你本地Python 3.9的绝对路径,例如/usr/local/bin/python3.9。
内容的提问来源于stack exchange,提问作者Wheeler
相关产品推荐
相关产品推荐

