首页
/ 【亲测免费】 setuptools_scm 项目常见问题解决方案

【亲测免费】 setuptools_scm 项目常见问题解决方案

2026-01-29 12:28:46作者:裘旻烁

项目基础介绍

setuptools_scm 是一个用于管理 Python 包版本的工具,它通过读取版本控制系统(如 Git 或 Mercurial)的元数据来动态生成版本号,而不是在代码中硬编码版本号。这个工具的主要编程语言是 Python。

新手使用注意事项及解决方案

1. 版本号未正确生成

问题描述:在使用 setuptools_scm 时,版本号未正确生成,导致打包或发布时出现问题。

解决步骤

  1. 检查配置文件:确保在 pyproject.toml 文件中正确配置了 setuptools_scm。例如:
    [build-system]
    requires = ["setuptools>=64", "setuptools-scm>=8"]
    build-backend = "setuptools.build_meta"
    
    [project]
    dynamic = ["version"]
    
    [tool.setuptools_scm]
    
  2. 确认版本控制系统:确保项目使用的是 Git 或 Mercurial 作为版本控制系统,并且已经正确初始化。
  3. 手动生成版本号:在项目根目录下运行以下命令,检查版本号是否正确生成:
    python -m setuptools_scm
    

2. 文件未包含在源代码包中

问题描述:某些文件未被包含在生成的源代码包(sdist)中,导致安装或发布时缺少必要的文件。

解决步骤

  1. 检查 .gitignore 文件:确保不需要的文件没有被 .gitignore 文件排除。
  2. 配置 MANIFEST.in 文件:如果某些文件未被自动包含,可以在 MANIFEST.in 文件中手动添加这些文件。例如:
    include README.md
    include LICENSE
    
  3. 使用 setuptools_scm 的文件管理功能:确保 setuptools_scm 正确管理了所有 SCM 管理的文件。

3. 旧版本 setuptools 兼容性问题

问题描述:某些企业发行版(如 RHEL7)自带的 setuptools 版本较旧,导致 setuptools_scm 无法正常工作。

解决步骤

  1. 升级 setuptools:尝试手动升级 setuptools 到最新版本。可以使用以下命令:
    pip install --upgrade setuptools
    
  2. 使用 pip 安装 setuptools_scm:确保 setuptools_scm 是通过 pip 安装的,而不是依赖系统自带的包。
  3. 检查 pyproject.toml 配置:确保 pyproject.toml 中的 setuptools 版本要求足够高,例如:
    [build-system]
    requires = ["setuptools>=64", "setuptools-scm>=8"]
    build-backend = "setuptools.build_meta"
    

通过以上步骤,新手用户可以更好地理解和解决在使用 setuptools_scm 项目时可能遇到的问题。

登录后查看全文
热门项目推荐
相关项目推荐