今天这个问题更难,因为我今天在Sphinx主页上使用搜索功能没有运气。
我有一组模块,我想从文档字符串中记录下来。但是,这些不是纯Python脚本。它们不会按原样编译,因为它们是从在执行范围内创建新变量的C#应用程序运行的。
对于Python编译器,看起来我有一个未定义的方法(技术上我做,直到C#创建IronPython脚本引擎并创建方法)。
当我跑步时:
sphinx-build -b html output/html
我明白了:
NameError: name 'injected_method' is not defined
如何让Sphinx忽略编译错误并生成我的文档?
编辑:
如果有人知道Sphinx的替代品(如Epydoc)是否不必编译Python脚本来获取函数签名和文档字符串,那么这也会有所帮助。 Sphinx是最好看的文档生成器,但如果必须的话,我会放弃它。
答案 0 :(得分:3)
好吧,你可以试试:
答案 1 :(得分:0)
也许您可以将inject_method定义为空函数,以便文档可以正常工作。您需要确保注入的inject_method的定义发生在新的inject_method存根之后。
#By empty function I mean a function that looks like this
def injected_method():
pass
答案 2 :(得分:0)
好的,我找到了解决错误的方法。
设置嵌入式脚本环境时,而不是使用:
ScriptScope.SetVariable("injected_method", myMethod);
我现在正在使用:
ScriptRuntime.Globals.SetVariable("injected_method", myMethod);
然后,在剧本中:
import injected_method
然后我在搜索路径中创建了一个虚拟的inject_method.py文件,该文件为空白。我在构建C#项目期间删除了虚拟文件以避免任何冲突。