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