我有一个项目,通过git
标记管理版本。然后,我使用setuptools_scm
在setup.py
中获取这些信息,并生成一个文件(_version.py
(,该文件在为pip
生成轮子时包含在内。
git
未跟踪此文件,因为:
- 它具有可以由
git
收集的相同信息 - 它将创建一个循环的情况,构建轮子将修改更改源的版本,并生成新版本
现在,当我构建文档时,从_version.py
获取此版本变得很自然,并且这一切在本地都能很好地工作。
但是,当我尝试在ReadTheDocs中执行此操作时,文档的构建失败,因为_version.py
不被git
跟踪,因此ReadTheDoc在从存储库获取源时找不到它。
编辑:我尝试使用副本中提出的方法,该方法与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:未找到"数字"分布,应用程序需要该分布
(同样,在本地构建文档可以正常工作。(
如果不在两个位置维护版本号,我如何解决此问题?
最终的问题是ReadTheDocs在默认情况下没有将我的包构建为活动的选项,我本以为会发生这种情况。
我所要做的就是在高级设置/默认设置中启用"安装项目"。