如何配置Sphinx以记录用于MicroPython解释器的模块?
我面临的根本问题是,Sphinx获取其文档信息来自所导入的模块。因此,用于记录模块的Python解释器必须可在该解释器中导入。
第一个问题
我正在使用pyboard,自然地
import pyb
无法找到模块pyb
...
所以我添加了到conf.py
from unittest.mock import MagicMock
sys.modules['pyb'] = MagicMock() # and many more
第二个问题
我的MicroPython库之一叫做cmd
Exception occurred:
File "/usr/lib/python3.5/pdb.py", line 135, in <module>
class Pdb(bdb.Bdb, cmd.Cmd):
AttributeError: module 'cmd' has no attribute 'Cmd'
所以这很有道理...我将模块的名称更改为ucmd
,并且似乎工作正常...但它非常不稳定。
问题
是否有一种正确的方法来做到这一点?
对于未设计用于运行sphinx-build
命令的平台的模块进行sphinx文档记录?
更实际地说:如果我想要记录一个名为collections
、subprocess
或io
(所有这些都被sphinx
库使用)的MicroPython模块,是否可以使用sphinx来完成?
还是我只能满足于分别将它们命名为ucollections
、usubprocess
和uio
?
cmd
为例,我有两个选择:1)导入 micropython 的 cmd 模块,但 sphinx 就无法加载;2)记录系统的cmd
模块,但这不是重点。 因此,“只需导入”会引发其中之一的问题……而使用抽象语法树(ast)方法进行自动文档化则不会有这个问题,但我不认为 sphinx 支持该方法。 我已经成功地在一个系统上工作了两年,我应该在这里回复我的经验和我发现的最佳实践。 - FraggaMuffin