setuptools-scm 使用教程

《UsingCLIBook》是一个开源项目,由xuxiaodong创建,以实践为导向,帮助开发者掌握命令行工具,涵盖文件系统操作、流程控制、工具安装等内容。适合新手和经验者,提升工作效率,适用于多种操作系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

setuptools-scm 使用教程

setuptools_scm the blessed package to manage your versions by scm tags 项目地址: https://gitcode.com/gh_mirrors/se/setuptools_scm

1. 项目介绍

setuptools-scm 是一个用于管理 Python 包版本的工具,它通过从 Git 或 Mercurial 的元数据中提取版本信息,而不是在代码中硬编码版本号。这使得版本管理更加自动化和灵活。setuptools-scm 还提供了自动将 SCM(源代码管理)管理的文件添加到源代码分发包(sdist)中的功能,减少了手动维护 MANIFEST.in 文件的需求。

2. 项目快速启动

安装

首先,确保你已经安装了 setuptools-scm。你可以通过 pip 来安装:

pip install setuptools-scm

配置

在你的项目根目录下,创建或编辑 pyproject.toml 文件,添加以下内容:

[build-system]
requires = ["setuptools>=64", "setuptools-scm>=8"]
build-backend = "setuptools.build_meta"

[project]
dynamic = ["version"]

[tool.setuptools_scm]

使用

在项目的 setup.py 文件中,确保你已经移除了硬编码的版本号,并使用 setuptools-scm 来动态获取版本号:

from setuptools import setup

setup(
    use_scm_version=True,
    setup_requires=['setuptools_scm'],
)

验证

你可以通过以下命令来验证版本号是否正确生成:

python -m setuptools_scm

3. 应用案例和最佳实践

案例1:自动化版本管理

在持续集成(CI)环境中,使用 setuptools-scm 可以自动生成版本号,避免手动更新版本号的繁琐工作。例如,在每次代码提交时,CI 系统可以自动生成新的版本号并发布到 PyPI。

案例2:多版本管理

在多分支开发环境中,setuptools-scm 可以根据不同的分支自动生成不同的版本号,方便开发者区分不同分支的版本。

最佳实践

  • 动态版本号:始终使用 setuptools-scm 动态生成版本号,避免在代码中硬编码版本号。
  • 配置文件:使用 pyproject.toml 文件来配置 setuptools-scm,确保配置的一致性和可维护性。
  • CI/CD 集成:在 CI/CD 流程中集成 setuptools-scm,自动生成和发布版本号。

4. 典型生态项目

1. pip

pip 是 Python 的包管理工具,广泛用于安装和管理 Python 包。setuptools-scm 可以与 pip 无缝集成,自动管理包的版本号。

2. hatch

hatch 是一个现代化的 Python 项目管理工具,支持 setuptools-scm 来管理版本号。通过 hatch,你可以更方便地管理项目的依赖和版本。

3. tox

tox 是一个用于自动化测试的工具,支持 setuptools-scm 来动态生成测试环境的版本号,确保测试环境的版本一致性。

通过这些生态项目的集成,setuptools-scm 可以更好地服务于 Python 项目的开发和维护。

setuptools_scm the blessed package to manage your versions by scm tags 项目地址: https://gitcode.com/gh_mirrors/se/setuptools_scm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘俭渝Erik

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值