ReadTheDocs + Sphinx + setuptools_scm:如何?

nor*_*ok2 5 python setuptools python-sphinx read-the-docs setuptools-scm

我有一个项目,我通过标签管理版本git。然后,我使用setuptools_scm在 my 中获取此信息setup.py,并生成一个文件 ( _version.py),该文件在生成 的轮子时包含在内pip

此文件未被跟踪,git因为:

  1. 它具有可以通过以下方式收集的相同信息git
  2. 这会造成一个循环的情况,造轮子会修改版本,从而改变源,并生成一个新版本

现在,当我构建文档时,从中获取此版本变得很自然_version.py,并且这一切在本地运行良好。

但是,当我尝试在 ReadTheDocs 中执行此操作时,文档的构建失败,因为_version.py未由 跟踪git,因此 ReadTheDocs 在从存储库获取源代码时找不到它。


编辑:我尝试使用重复中提出的方法,该方法与文档中指示的方法相同setuptools_scm,即使用docs/conf.py

from pkg_resources import get_distribution
__version__ = get_distribution('numeral').version
... # I use __version__ to define Sphinx variables
Run Code Online (Sandbox Code Playgroud)

但我得到:

pkg_resources.DistributionNotFound:未找到“数字”分布,并且是应用程序所需的

(同样,在本地构建文档可以正常工作。)


如何解决这个问题而不需要在两个地方维护版本号?

nor*_*ok2 4

最终的问题是 ReadTheDocs 没有默认构建我的包的选项,我预计会发生这种情况。

我所要做的就是在高级设置/默认设置中启用“安装项目”。