理解tox.ini中的非默认Python配置

理解tox.ini中的非默认Python配置,python,tox,Python,Tox,我正在尝试了解更多有关配置tox.ini文件的详细信息。在和中,它们不是使用默认的python环境,而是在命令中定义新的环境: [testenv] basepython = py27: {env:TOXPYTHON:python2.7} py33: {env:TOXPYTHON:python3.3} 这样做有什么好处?另外,使用env:TOXPYTHON命令的命令实现了什么?我在tox文档中找不到它。这里要理解的主要概念是: 如果运行的环境包含冒号前面列出的某个因素,则此项有

我正在尝试了解更多有关配置tox.ini文件的详细信息。在和中,它们不是使用默认的python环境,而是在命令中定义新的环境:

[testenv]
basepython =
    py27: {env:TOXPYTHON:python2.7}
    py33: {env:TOXPYTHON:python3.3}

这样做有什么好处?另外,使用env:TOXPYTHON命令的命令实现了什么?我在tox文档中找不到它。

这里要理解的主要概念是:

  • 如果运行的环境包含冒号前面列出的某个因素,则此项有效

  • 大括号中的元素将根据shell tox中设置的环境变量的状态被替换

    把它放在一起,你的片段的意思是:

    py27: {env:TOXPYTHON:python2.7}
    
    如果因子
    py27
    是tox环境名称的一部分(例如“py27 unittests”),则将环境变量TOXPYTHON的值或未设置环境变量的文字“python2.7”用作basepython

    同样的原则也适用于包含系数
    py33
    的环境


    其优点是,作为开发人员,您可以根据需要设置TOXPYTHON环境变量,以防python2.7或python3.3不在您的路径中。这(我猜)是tox在不同的OSS和分布上发现解释器方面存在一些弱点的结果。请参阅:

    这里要理解的主要概念是:

  • 如果运行的环境包含冒号前面列出的某个因素,则此项有效

  • 大括号中的元素将根据shell tox中设置的环境变量的状态被替换

    把它放在一起,你的片段的意思是:

    py27: {env:TOXPYTHON:python2.7}
    
    如果因子
    py27
    是tox环境名称的一部分(例如“py27 unittests”),则将环境变量TOXPYTHON的值或未设置环境变量的文字“python2.7”用作basepython

    同样的原则也适用于包含系数
    py33
    的环境


    其优点是,作为开发人员,您可以根据需要设置TOXPYTHON环境变量,以防python2.7或python3.3不在您的路径中。这(我猜)是tox在不同的OSS和分布上发现解释器方面存在一些弱点的结果。请参阅:

    python2.7
    python3.3
    是unix风格的名称。在w32上,python二进制文件通常命名为
    C:\Python27\python.exe
    C:\Python33\python.exe
    。要创建在Linux和w32中同样有效的
    tox.ini
    ,可以用不同的方式定义
    TOXPYTHON


    请参见我如何定义Python的示例。

    python2.7
    python3.3
    是unix样式的名称。在w32上,python二进制文件通常命名为
    C:\Python27\python.exe
    C:\Python33\python.exe
    。要创建在Linux和w32中同样有效的
    tox.ini
    ,可以用不同的方式定义
    TOXPYTHON

    有关详细信息,请参见我如何定义
    TOXPYTHON