如何在 tox 中创建特定于体系结构的环境

How to create architecture specific environments in tox

我正在创建一个 python C 扩展,它依赖于体系结构(32 位/64 位)特定的 C 模块。我想在不同的毒性环境中处理它们。默认情况下,只能为不同的 python 版本创建单独的环境,但不能为不同的体系结构创建单独的环境:

[testenv:py36]
...

是否可以以某种方式将此条目拆分为 32 位和 64 位版本:

[testenv:py36-32bit]
...

[testenv:py36-64bit]
...

特别是对于 Windows,这是一个大问题,因为必须支持两种架构,甚至可能安装在一个系统中。

据我所知,今天不可能。有话题讨论:


由于 tox-interpreters plugin:

也许有办法解决这个问题
[tox]
envlist =
    ThreeSixThirtyTwo-something
    ThreeSixThirtyTwo-another
    ThreeEightSixtyFour
    ThreeEightSixtyFour-again
[testenv]
interpreter =
    ThreeSixThirtyTwo.* = A:\Path\To\Python3.6-32bits\python.exe
    ThreeEightSixtyFour.* = B:\Path\To\Python3.8-64bits\python.exe
commands =
    python -V
    python -c "import platform; print(platform.architecture())"

如今无需插件即可。请参阅文档 here

添加以下内容对我有用。

[tox]
envlist = py38-x86,py39

[testenv]
basepython =
    py38-x86: python3.8-32
    py39: python3.9-64