如何通过命令行参数为python3 -m build指定Python包版本号
可以实现,不需要将版本号写死在源码/配置文件中,以下是无额外依赖的可行方案:
- 修改
pyproject.toml配置,声明版本为动态字段,你现有配置修改后如下:
[build-system] requires = [ "setuptools>=61.0", "wheel" ] build-backend = "setuptools.build_meta" [project] name = "替换为你的包实际名称" dynamic = ["version"]
- 在项目根目录新增极简
setup.py文件,用于读取构建时传入的环境变量作为版本号:
import os from setuptools import setup # 环境变量名可以自定义,默认版本号可按自己需求调整 version = os.getenv("BUILD_PKG_VERSION", "0.0.0.dev") setup(version=version)
- 构建时直接通过环境变量传入版本号即可:
BUILD_PKG_VERSION=1.2.3 python3 -m build
这种方式下,构建时传入的版本号仅作用于本次打包,不会修改本地任何配置文件,完全不会产生Git变更记录。如果不需要自定义版本,想要直接从Git标签自动生成版本,可以替换上述方案使用setuptools-scm插件,无需额外的setup.py文件。
内容的提问来源于stack exchange,提问作者guettli
相关产品推荐
相关产品推荐

