Python setup.py setuptools_scm use_scm_version/get_version() 错误

Python setup.py setuptools_scm use_scm_version/get_version() error

亲爱的 interent 我的 docker 构建 (RUN python3 setup.py install) 继续失败并出现以下错误:LookupError: setuptools-scm was unable to detect version for '/src'. 我知道有很多关于这个的帖子,但我仍然无法排序出来。 这是我的回购协议:

.
├── Dockerfile
├── VERSION  # a one-line file: 1.5.0
├── package
│   ├── __init__.py
│   ├── module.py
├── setup.py
└── .git

这是我的 setup.py 文件:

from setuptools import setup

setup_requirements = [
    'setuptools_scm==3.5.0',
    "Cython==0.29.24",
]
setup(
    ...
    use_scm_version=True,
    setup_requires=setup_requirements,
    ...
)

几个注意事项:

  1. 如果我 运行 git describe 我得到我希望 use_scm_version 找到的版本: 1.5.0-rc.1
  2. 如果我注释掉 use_scm_version=True 并改为使用 version=1.5.0,它会完美运行

非常感谢您提供的所有帮助,我被困住了。干杯:)

您尝试构建的包中是否有 git 和 .git 目录(元数据)? setuptools-scm 依赖于 git(以及实际的 git 签出) 在 sdist 档案中找到的一些元数据。当两者都不可用时,它会像上面那样抱怨。如果您在构建环境中没有任何元数据(例如使用 GNU Guix 构建包时),您可以通过将 SETUPTOOLS_SCM_PRETEND_VERSION 导出到您选择的版本字符串来安抚 setuptools-scm,它会用那个。

我刚刚在我维护的 CI 管道上遇到了一个非常相似的问题(并为此浪费了几个小时...)。

这是由于 setuptools_scm 默默地忽略了与 , see https://github.com/pypa/setuptools_scm/issues/707

相关的 git 错误

Here 是一份 (similar/duplicate) 问题报告,其中还显示了如何诊断问题。