在Sphinx构建中,所有警告和错误都写在stderr
中。但是,我只希望用stderr
写的错误和用stdout
写的警告。
有什么方法可以实现这个目标吗?
答案 0 :(得分:0)
除非您将sphinx
作为包加载并对其机器进行猴子修补,否则无法更改:
sphinx\cmdline.py
:
<...>
def main(argv=sys.argv[1:]):
<...>
status = sys.stdout
warning = sys.stderr
error = sys.stderr
if args.quiet:
status = None
if args.really_quiet:
status = warning = None
if warning and args.warnfile:
try:
warnfp = open(args.warnfile, 'w')
<...>
warning = Tee(warning, warnfp) # type: ignore
error = warning
<...>
with patch_docutils(), docutils_namespace():
app = Sphinx(srcdir, confdir, outdir, doctreedir, args.builder,
confoverrides, status, warning, args.freshenv,
args.warningiserror, args.tags, args.verbosity, args.jobs)
app.build(args.force_all, filenames)
return app.statuscode
正如您所看到的,Sphinx
甚至没有针对错误与警告的单独构造函数参数。