我在ReadTheDocs上有一个项目。
作为文档生成的一部分,我让Sphinx使用matplotlib的plot directive编译大量图像,显示各种命令的作用。似乎这需要比RTD为构建过程分配更多的内存。我正在试图弄清楚该做些什么。
我的想法:
在ReadTheDocs项目中包含计算成本高昂的自动生成图像的好方法是什么?
面值,选项3是最好的方法。如果生成图像的计算成本很高,显然您希望减少这些计算。此外,您不应该存储图像。这听起来像是要将该逻辑推送到部署提供程序。请记住,图像也可以缓存在用户的计算机上,因此无需重新生成未更改的图像。
现在,另一种选择是使用像plot.ly这样的JavaScript库。生成图像或图表计算成本高吗?如果生成图表很便宜,那么切换到JavaScript库是可行的方法。
关于选项4:如何做到这一点是in the documentation。
我最终选择了Option 4。
为此,我通过以下方式修改了matplotlib的Sphinx plot directive。
然后我修改了我的Sphinx conf.py
文件以加载并使用这个新的绘图模块。
最后,我将生成的图像保存在子模块中。
为了更新文档,我现在使用以下工作流程:
make html
。make html
。但是,在存在图像的情况下,不进行密集计算。修改conf.py
#This line tells Sphinx to look for modules in the directory
#containing `conf.py`. This way it finds `plot_directive.py`
sys.path.append(os.path.abspath('.'))
#This must come before plot_directive is loaded by Sphinx
plot_preserve_dir = 'imagery-submodule-directory'
extensions = [
#...
'plot_directive',
#...
]
我的修改版plot_directive.py
可用here。