我正在尝试详细了解配置tox.ini文件的详细信息。在one of the files for the Jupyter project和this demo project中,他们不是使用默认的python环境,而是在命令中定义新环境:
[testenv]
basepython =
py27: {env:TOXPYTHON:python2.7}
py33: {env:TOXPYTHON:python3.3}
这有什么好处?另外,使用env:TOXPYTHON命令完成的命令是什么?我在tox文档中找不到它。
答案 0 :(得分:0)
这里要理解的主要概念是:
如果运行的环境包含冒号前面列出的因素之一,那么这是有效的。
花括号中的元素会被替换,具体取决于运行shell tox中设置的环境变量的状态。
将您的代码段的含义放在一起是:
py27: {env:TOXPYTHON:python2.7}
如果因子py27
是tox环境名称的一部分(例如" py27-unittests"),则使用环境变量TOXPYTHON或文字" python2作为basepython的值0.7"如果未设置环境变量。
相同的原则适用于包含因子py33
的环境。
优点是,作为开发人员,您可以根据需要设置TOXPYTHON环境变量,以防python2.7或python3.3不在您的路径中。这是(我猜)是因为tox在不同的Osses和分布上有关于解释器发现的一些弱点。请参阅:https://github.com/tox-dev/tox/projects/3
答案 1 :(得分:0)
python2.7
或python3.3
是unix风格的名称。在w32上,python二进制文件通常被命名为C:\Python27\python.exe
或C:\Python33\python.exe
。要创建在Linux和W32中同样有效的tox.ini
,可以不同地定义TOXPYTHON
。
例如,请参阅我为AppVeyor tests定义TOXPYTHON
的方式。