You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用tox构建分发用软件包的正确方式

使用tox构建分发软件包的正确方式

两种构建方式的合理性

  • 显式testenv:build方式:这是tox生态里构建分发包的常规操作,完全没问题。别纠结“为啥不用pkgenv”,它俩定位不一样。这种方式直接可控,你可以自定义构建命令(比如加--sdist --wheel指定生成源码包和wheel包),还能给这个环境单独配置依赖(比如指定build工具的版本),执行时跑tox -e build就能生成包,逻辑清晰,也适合CI/CD流程里单独做构建步骤。
  • 隐式依赖测试生成包的方式:不推荐用来做正式的分发包构建。这个包是tox执行测试环境时的副作用产物,构建逻辑是tox内部为了安装测试环境而生成的,可能和你想要的分发配置不一致,而且没法直接触发它,只能靠跑其他测试任务顺带生成,灵活性太差,也不利于维护。

pkgenv的真实用途

pkgenv是tox用来统一管理包构建基础配置的段,作用是给所有需要构建包的testenv提供共享配置,不是用来直接定义构建任务的。比如你可以在pkgenv里指定构建工具依赖、构建环境变量,所有需要构建包的testenv都会自动继承这些配置,保证各环境的构建逻辑一致:

[pkgenv]
deps = build>=1.0.0
set_env =
    BUILD_ARGS = --sdist --wheel

关于[pkgenv:build]的用法

这种写法是无效的。pkgenv是全局共享的配置段,不支持像testenv那样加冒号后缀定义特定环境。具体的构建任务还是要放在testenv里定义。

内容的提问来源于stack exchange,提问作者Bastian Venthur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:06:07