如何在pyproject.toml动态字段中使用Python脚本生成的值?
在pyproject.toml中通过Python脚本动态生成版本号(setuptools环境)
不用编写脚本修改pyproject.toml文件,直接利用setuptools的动态版本生成机制就能实现,这是更规范、更干净的方案:
实现步骤
1. 配置pyproject.toml启用动态版本
修改你的pyproject.toml,声明version为动态字段并关联版本生成函数:
[project] name = "你的包名" dynamic = ["version"] # 标记version字段由外部逻辑生成 [tool.setuptools.dynamic] version = {attr = "version.random_version"} # 指定版本生成函数的路径:模块名.函数名
2. 编写版本生成脚本
在项目根目录创建version.py文件,放入你的版本生成逻辑(注意返回符合PEP 440规范的字符串版本号):
import random def random_version(): # 生成符合PEP 440的随机版本号,示例格式为0.0.x return f"0.0.{random.randint(1, 10)}"
方案优势
- 无需手动修改pyproject.toml,避免文件写入操作和版本控制中的不必要变更
- 由setuptools在构建阶段自动调用函数获取版本号,符合现代Python打包规范
- 版本号格式遵循PEP 440,避免后续打包或依赖管理出现兼容性问题
内容的提问来源于stack exchange,提问作者d0ppL3G
相关产品推荐
相关产品推荐

