ReadTheDocs + Sphinx + setuptools_scm:如何?
ReadTheDocs + Sphinx + setuptools_scm: how to?
我有一个项目,我通过 git
标签管理版本。
然后,我使用 setuptools_scm
在我的 setup.py
中获取此信息,并生成一个文件 (_version.py
),在为 pip
.[=25= 生成轮子时包含该文件]
此文件未被 git
跟踪,因为:
- 它具有与
git
可以收集的相同信息
- 这会造成循环情况,即构建轮子会修改版本,从而更改源并生成新版本
现在,当我构建文档时,从 _version.py
获取此版本变得很自然,这一切都在本地运行良好。
但是,当我尝试在 ReadTheDocs 中执行此操作时,文档构建失败,因为 _version.py
未被 git
跟踪,因此 ReadTheDocs 在从存储库。
编辑:我尝试使用duplicate中提出的方法,这与setuptools_scm
相同在文档中指出,即在 docs/conf.py
:
中使用
from pkg_resources import get_distribution
__version__ = get_distribution('numeral').version
... # I use __version__ to define Sphinx variables
但我得到:
pkg_resources.DistributionNotFound: The 'numeral' distribution was not found and is required by the application
(同样,在本地构建文档工作正常。)
如何在不求助于在两个地方维护版本号的情况下解决这个问题?
最终的问题是 ReadTheDocs 没有默认构建我的包的选项,我期待这种情况发生。
我所要做的就是在高级设置/默认设置中启用"Install Project"。
我有一个项目,我通过 git
标签管理版本。
然后,我使用 setuptools_scm
在我的 setup.py
中获取此信息,并生成一个文件 (_version.py
),在为 pip
.[=25= 生成轮子时包含该文件]
此文件未被 git
跟踪,因为:
- 它具有与
git
可以收集的相同信息
- 这会造成循环情况,即构建轮子会修改版本,从而更改源并生成新版本
现在,当我构建文档时,从 _version.py
获取此版本变得很自然,这一切都在本地运行良好。
但是,当我尝试在 ReadTheDocs 中执行此操作时,文档构建失败,因为 _version.py
未被 git
跟踪,因此 ReadTheDocs 在从存储库。
编辑:我尝试使用duplicate中提出的方法,这与setuptools_scm
相同在文档中指出,即在 docs/conf.py
:
from pkg_resources import get_distribution
__version__ = get_distribution('numeral').version
... # I use __version__ to define Sphinx variables
但我得到:
pkg_resources.DistributionNotFound: The 'numeral' distribution was not found and is required by the application
(同样,在本地构建文档工作正常。)
如何在不求助于在两个地方维护版本号的情况下解决这个问题?
最终的问题是 ReadTheDocs 没有默认构建我的包的选项,我期待这种情况发生。
我所要做的就是在高级设置/默认设置中启用"Install Project"。