当前位置: 首页 > 面试题库 >

如何从Sphinx编译中获取警告列表

毛宏达
2023-03-14
问题内容

我正在开发基于狮身人面像的协作写作工具。用户访问Web应用程序(在python / Flask中开发),以sphinx编写一本书并将其编译为pdf。

我了解到,为了从python中编译sphinx文档,我应该使用

import sphinx
result = sphinx.build_main(['-c', 'path/to/conf',
                            'path/to/source/', 'path/to/out'])

到现在为止还挺好。

现在,我的用户希望该应用向他们显示他们的语法错误。但是输出(result在上面的示例中)仅提供了退出代码。

那么,如何从构建过程中获取警告列表?

也许我太有野心了,但是由于sphinx是python工具,因此我期望该工具具有一个不错的pythonic接口。例如,的输出sphinx.build_main可能是一个非常丰富的对象,带有警告,行号…

与此相关的是,该方法的参数sphinx.build_main看起来就像是命令行界面的包装。


问题答案:

sphinx.build_main()调用sphinx.cmdline.main(),依次创建一个sphinx.application.Sphinx对象。您可以直接创建这样的对象(而不是“在python中进行系统调用”)。使用这样的东西:

import os
from sphinx.application import Sphinx

# Main arguments 
srcdir = "/path/to/source"
confdir = srcdir
builddir = os.path.join(srcdir, "_build")
doctreedir = os.path.join(builddir, "doctrees")
builder = "html"

# Write warning messages to a file (instead of stderr)
warning = open("/path/to/warnings.txt", "w")

# Create the Sphinx application object
app = Sphinx(srcdir, confdir, builddir, doctreedir, builder, 
             warning=warning)

# Run the build
app.build()


 类似资料:
  • 问题内容: 我正在编写Jenkins插件,但是Java和Maven都是新手。 当我在intelliJ中构建插件时,我会收到所有希望看到的编译器警告(例如,弃用警告),但是我找不到通过命令行显示这些内容的编译方法(例如,使用mvn hpi:hpi / mvn编译) 我尝试将以下行添加到Maven设置文件的maven-compiler-plugin部分,但无济于事: 这样做的最终目的是在jenkins

  • 忽略编译器警告 格式 #pragma clang push #pragma clang diagnostic ignored "错误类型" // 存在警告的代码 #pragma clang pop > 1.在需要忽略的警告处右键 -- Reveal in Log 2.会给出警告的详细信息,其中包括警告的类型 3.高亮选中的便是这个警告的类型 4.在警告代码处增加如下代码 Command

  • 线程“main”java.lang.IllegalAccesserror中出现异常:试图从org.openqa.selenium.firefox.firefoxBinary类中访问org.openqa.selenium.os.ExecutableFinder类,从org.openqa.selenium.firefoxBinary中访问org.openqa.selenium.firefoxBinar

  • 在我的应用程序中,我有一个由第三方开发的库,不幸的是,它包含相当多的lint和javac警告。我想忽略这两种类型的警告,因为它们无法由我们的团队修复,并且它们会污染我们的构建日志。我尝试将以下内容添加到库build.gradle文件中: 在Android块中 我还在build.gradle文件末尾添加了以下内容: 不幸的是,每当“:compileDebugJavaWithJavac”运行时,它仍然

  • 问题内容: 在运行存储过程时,该过程可能会引发警告消息。 有什么办法可以在Golang中使用Postgresql驱动程序(https://github.com/lib/pq)获取这些消息? 问题答案: 答案似乎是否定的。 在我的测试中,Postgres服务器似乎没有发送警告和结果。即使这样做,返回错误以及sql.Result充其量也将造成混乱,并且需要进行修改。在函数 中 引发错误 确实 返回了错

  • 问题内容: 我在尝试: 但没有喜悦。现在有什么想法可以解决此博客文章中建议的此类错误 ? 问题答案: 编辑:这个答案已经过时了,但是我不能删除它,因为当时它是一个被接受的答案。 有关Maven的错误,请参见:https : //issues.apache.org/jira/browse/MCOMPILER-120。它已在Maven- compiler-plugin的2.4版中修复,但我不认为该版本