作为构建命令的一部分,更改sphinx conf.py中的变量

2022-04-22 00:00:00 python python-sphinx

问题描述

我有一个带有conf.py的Sphinx项目,其中我使用一个变量来指定我的产品名称,如下所示:

device_name = "ProductName"
rst_epilog = f".. |device_name| replace:: {device_name}"

我希望能够在构建过程中将ProductName的值作为.bat文件的一部分进行修改,因为我正在构建同一项目两次,分别针对我的两个产品:

sphinx-build  -t ce2 -b html -d _build_ce2/doctrees source _build_ce2/html -E
sphinx-build  -t ce1 -b html -d _build_ce1/doctrees source _build_ce1/html -E

有没有办法直接在Build命令中修改conf.py变量device_name


解决方案

我最终使用环境变量解决了此问题。

conf.py

# get environment variables (set as part of make .bat files)
env_device_name = os.getenv("DEVICENAME")

# set device name
if env_device_name != None:
    device_name = env_device_name
else:
    device_name = "CANedge2"  # default device name

make.bat

SET DEVICENAME=Product2
sphinx-build  -t ce2 -b html -d _build_ce2/doctrees source _build_ce2/html -E
SET DEVICENAME=Product1
sphinx-build  -t ce1 -b html -d _build_ce1/doctrees source _build_ce1/html -E

相关文章