如何在 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]
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
我正在创建一个 python C 扩展,它依赖于体系结构(32 位/64 位)特定的 C 模块。我想在不同的毒性环境中处理它们。默认情况下,只能为不同的 python 版本创建单独的环境,但不能为不同的体系结构创建单独的环境:
[testenv:py36]
...
是否可以以某种方式将此条目拆分为 32 位和 64 位版本:
[testenv:py36-32bit]
...
[testenv:py36-64bit]
...
特别是对于 Windows,这是一个大问题,因为必须支持两种架构,甚至可能安装在一个系统中。
据我所知,今天不可能。有话题讨论:
也许有办法解决这个问题
[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