readthedocs和setuptools scm版本错误

Pen*_*ian 5 setuptools read-the-docs setuptools-scm

我有一个刚刚更新为使用 setuptools_scm 的包,发现 readthedocs 中的版本号是错误的。

http://sshuttle.readthedocs.org/en/v0.77/显示:

Version: 0.78.dev0+ng083293e.d20160304
Run Code Online (Sandbox Code Playgroud)

然而,由于版本 083293e 具有 0.77 标签,因此版本字符串应该只是 0.77

看起来 readthedocs 可能会在构建之前对我的源代码进行更改。

我查看了 readthedocs 构建日志,似乎在某个阶段具有正确的版本(0.77),但这是在构建文档之前。

Processing dependencies for sshuttle==0.77
Finished processing dependencies for sshuttle==0.77
Run Code Online (Sandbox Code Playgroud)

构建文档时构建日志不会提及版本。

有可能解决这个问题吗?

谢谢

Pen*_*ian 0

setuptools_scm 的文档现在包含有关如何使用 readthedocs 的说明:

不鼓励使用 sphinx 本身的 setuptools_scm,而是在可编辑/真实安装后使用 pkg_resources:

from pkg_resources import get_distribution
release = get_distribution('myproject').version
# for example take major/minor
version = '.'.join(release.split('.')[:2])
Run Code Online (Sandbox Code Playgroud)

根本原因是,像 readthedocs 这样的服务有时会出于充分的原因更改工作目录,并且使用已安装的元数据可以防止在那里使用不必要的易失性数据。

这避免了按照其他答案使用克鲁格的需要。