如何在pyproject.toml中引用元数据?实现版本号单次复用
在pyproject.toml中复用版本号生成下载链接的方案
你遇到的问题是pyproject.toml的[project.urls]字段不支持直接解析${metadata:version}这种setuptools旧格式的插值。要实现只写一次版本号并复用,有两种可行方案:
方案1:利用TOML文件内变量插值
TOML本身支持引用同一文件内的其他配置项,只要你的setuptools版本≥61.0.0,就可以直接这样写:
[project] version = "2.13.4" [project.urls] Download = "https://github.com/xx/xx/archive/v${project.version}.tar.gz"
setuptools会正确解析这个插值,生成包含对应版本号的下载链接。
方案2:使用动态版本管理(推荐)
如果不想手动维护版本号,可以用setuptools-scm从Git标签自动生成版本,同时自动对应下载链接的标签:
- 先安装依赖:
pip install setuptools-scm - 修改pyproject.toml:
[project] dynamic = ["version"] [tool.setuptools_scm] # 可选:若你的Git标签不含v前缀,可添加配置如:root = ".",默认识别带v前缀的标签(如v2.13.4) [project.urls] Download = "https://github.com/xx/xx/archive/v{version}.tar.gz"
这样版本号会自动从Git标签同步,下载链接也会对应生成,完全不用手动修改版本号。
内容的提问来源于stack exchange,提问作者Pierrick Rambaud
相关产品推荐
相关产品推荐

