包装¶
虽然可以使用TOX来开发和测试应用程序,但它最流行的用途之一是帮助库创建者。库需要首先打包,然后才能安装在虚拟环境中进行测试。来帮助这个 tox 检测工具 PEP-517 和 PEP-518. 这意味着默认情况下,tox将在源代码树之外构建源代码分布。在运行测试命令之前 pip
用于在生成环境中安装源代码发行版。
要创建源代码发行版,可以使用多种工具 PEP-517 和 PEP-518 你可以很容易地用你最喜欢的一种带tox的。从历史上看,仅支持 tox 检测 setuptools
,并且始终使用TOX主机环境从源树构建源分发。这仍然是默认行为。要选择退出此行为,您需要将隔离构建设置为true。
setuptools¶
使用 pyproject.toml
根文件夹中的文件(旁边 setup.py
)可以指定构建要求。
[build-system]
requires = [
"setuptools >= 35.0.2",
"setuptools_scm >= 2.0.0, <3"
]
build-backend = "setuptools.build_meta"
# tox.ini
[tox]
isolated_build = True
flit¶
flit 要求 Python 3
,但是,生成的源代码发行版可以安装在 python 2
。此外,它不需要 setup.py
文件,因为该信息也会添加到 pyproject.toml
文件。
[build-system]
requires = ["flit_core >=2,<4"]
build-backend = "flit_core.buildapi"
[tool.flit.metadata]
module = "package_toml_flit"
author = "Happy Harry"
author-email = "happy@harry.com"
home-page = "https://github.com/happy-harry/is"
# tox.ini
[tox]
isolated_build = True
诗歌¶
poetry 要求 Python 3
,但是,生成的源代码发行版可以安装在 python 2
。此外,它不需要 setup.py
文件,因为该信息也会添加到 pyproject.toml
文件。
[build-system]
requires = ["poetry_core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry]
name = "package_toml_poetry"
version = "0.1.0"
description = ""
authors = ["Name <email@email.com>"]
# tox.ini
[tox]
isolated_build = True
[tox:.package]
# note tox will use the same python version as under what tox is installed to package
# so unless this is python 3 you can require a given python version for the packaging
# environment via the basepython key
basepython = python3