setuptools_scm 使用教程

setuptools_scm 使用教程

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

1、项目介绍

setuptools_scm 是一个用于自动管理 Python 包版本的工具。它通过读取版本控制系统(如 Git 或 Mercurial)中的元数据来动态生成版本号,而不是在代码中硬编码版本号。这使得版本管理更加灵活和自动化,特别适合在持续集成和持续交付(CI/CD)环境中使用。

setuptools_scm 的主要功能包括:

  • 自动从版本控制系统中提取版本号。
  • 自动将版本控制系统管理的文件添加到源代码包中。
  • 支持通过配置文件(如 pyproject.toml)进行自定义配置。

2、项目快速启动

安装

首先,使用 pip 安装 setuptools_scm

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]
# 可选配置,例如版本格式
version_scheme = "guess-next-dev"

使用

setup.py 文件中启用 setuptools_scm

from setuptools import setup

setup(
    use_scm_version=True,
)

示例代码

假设你有一个简单的 Python 项目,目录结构如下:

my_project/
├── my_module.py
├── setup.py
└── pyproject.toml

setup.py 中添加以下内容:

from setuptools import setup, find_packages

setup(
    name="my_project",
    packages=find_packages(),
    use_scm_version=True,
    setup_requires=['setuptools_scm'],
)

pyproject.toml 中添加以下内容:

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

[project]
dynamic = ["version"]

[tool.setuptools_scm]
version_scheme = "guess-next-dev"

3、应用案例和最佳实践

应用案例

setuptools_scm 广泛应用于需要频繁发布版本的 Python 项目中,特别是在开源社区中。例如,许多流行的 Python 库(如 requestspip 等)都使用 setuptools_scm 来管理版本号。

最佳实践

  1. 版本号管理:使用 setuptools_scm 自动生成版本号,避免手动修改版本号带来的错误。
  2. 配置文件:在 pyproject.toml 中配置 setuptools_scm,确保项目符合现代 Python 项目的最佳实践。
  3. 持续集成:在 CI/CD 环境中使用 setuptools_scm,确保每次构建的版本号都是最新的。

4、典型生态项目

setuptools_scm 是 Python 生态系统中的一部分,与以下项目紧密相关:

  • setuptoolssetuptools_scm 依赖于 setuptools 来完成包的构建和发布。
  • pippip 是 Python 的包管理工具,支持通过 setuptools_scm 自动生成版本号。
  • toxtox 是一个用于自动化测试的工具,可以与 setuptools_scm 结合使用,确保测试环境的一致性。

通过这些工具的结合使用,可以大大提高 Python 项目的开发效率和版本管理能力。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

邬筱杉Lewis

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

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

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

打赏作者

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

抵扣说明:

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

余额充值