setuptools_scm安装与使用指南
一、项目目录结构及介绍
setuptools_scm
是一个自动化管理Python包版本的工具,通过Git或Hg元数据提取版本信息,替代传统的手动指定版本方式。虽然直接从GitHub仓库提供的源码无法直接展示实时的目录结构,但基于常规的Python项目布局,我们可以推测其大致结构:
setuptools_scm/
│
├── LICENSE.txt # 许可证文件
├── README.md # 项目说明文档
├── setup.py # 项目的安装脚本,用于传统安装方式
├── pyproject.toml # 当代Python项目配置,用于定义构建系统需求等
├── src/
│ └── setuptools_scm # 主体源码目录
│ ├── __init__.py # 初始化文件,可能包含了必要的导入和版本控制逻辑
│ └── ... # 其他源码文件
├── tests/ # 测试目录,存放项目的测试案例
│ ├── __init__.py
│ └── ...
├── docs/ # 文档目录,可能包含API文档和用户手册
│ └── ...
└── examples/ # 可能存在示例代码或使用演示
请注意,上述结构是基于开源Python项目的一般组织形式,并非直接从给定链接获取的信息。
二、项目的启动文件介绍
-
setup.py:尽管
setuptools_scm
本身旨在减少对这类文件的依赖,特别是当使用现代的Python配置(如pyproject.toml
)时,但很多项目仍保留setup.py
以兼容旧的安装流程。此文件通常包含调用setuptools.setup()
函数来描述项目详情,比如名称、版本、作者等,并指定如何构建和安装项目。 -
对于
setuptools_scm
的应用项目而言,setup.py
可能会简化至仅调用find_packages
和使用setuptools_scm
来动态获取版本信息,例如:from setuptools import setup from setuptools_scm import get_version setup( use_scm_version=True, )
三、项目的配置文件介绍
-
pyproject.toml:这是现代Python项目推荐的配置文件,特别是在PEP 517和PEP 518之后。对于
setuptools_scm
的配置,关键部分在于[tool.setuptools_scm]
节,用来指示如何从版本控制系统中获取版本信息。一个基本的例子如下:[build-system] requires = ["setuptools>=40.8.0", "setuptools_scm[toml]>=3"] build-backend = "setuptools.build_meta" [tool.setuptools_scm] version_scheme = "guess-next-dev" local_scheme = "node-and-date"
-
在这个配置中,
version_scheme
和local_scheme
指定了版本号的生成策略,保证在不同场景下的版本增量规则。
以上就是基于setuptools_scm
项目一般理解而整理的指导文档框架。实际操作时,应依据仓库中的最新文档和示例来进行具体配置和操作。