python - 使用平台时,指定 Python 版本特定的 testenv 设置
问题描述
如何设置为特定 Python 版本指定设置的 testenv?作为一个最小的例子,
[tox]
envlist = py{36,37,38,39}-{mylinux,macos,mywindows}
skipsdist = True
[testenv]
platform = mylinux: linux
mymacos: darwin
mywindows: win32
setenv =
mylinux: PLATFORM = linux
mymacos: PLATFORM = macos
mywindows: PLATFORM = windows
commands =
{envpython} -c "print('{env:PLATFORM}')" # This env is used in setup.py
# other commands
[testenv:py36]
deps =
pydantic # No dataclasses until py37
如果我运行tox -e py36-mylinux
,pydantic
将不会安装。如果我跑tox -e py36
,它会说
ERROR: py36: unresolvable substitution(s):
commands: 'PLATFORM'
Environment variables are missing or defined recursively.
如何为特定的 Python 版本指定 testenv 设置,而不必在环境名称中指定所有其他信息(尤其是当 envlist 变长时)?
解决方案
一样的方法; 将其放入[testenv]
(并删除[testenv:py36]
):
deps =
py36: pydantic # No dataclasses until py37
验证配置tox --showconfig
PS。tox
不结合环境;一旦你有一个单独的[testenv:py36]
,它就不会与mylinux
.
推荐阅读
- spring - 为什么我在使用 JdbcTemplate 的 queryForList() 选择记录时遇到堆内存问题
- python - 初始化字典中变量的第一个实例
- javascript - $.getJSON() 函数没有响应
- security - 如何审计用户在 K8s 容器内运行的命令
- sql - Hive 在每个组中最受欢迎
- python-3.6 - YUM 包在 repo 中可用,但安装时给出“无包”
- python-3.x - 调用局部变量导致 TypeError: cannot unpack non-iterable NoneType object
- unity3d - 角色没有用脚本改变动画状态
- twitter-bootstrap - 如何提高引导按钮“越过”拉伸的链接?
- visual-studio - 使用 Visual Studio 2017 和 Visual Studio 2019 设置和使用 Specflow、Selenium、Nunit、.NET Core 的步骤