使用pydoc和未知模块创建文档

0 投票
1 回答
1470 浏览
提问于 2025-04-18 01:47

我觉得这个问题可能比较特殊。在大学里,我们被教导要用pydoc来生成文档。问题是,我们需要为一个Maya脚本生成文档,而当pydoc遇到import maya.cmds as cmds这行代码时,它就会报错。

所以,我试着把这一行注释掉,但还是出现了错误:

python C:\Python27\Lib\pydoc.py Script.py    
problem in Script - <type 'exceptions.NameError'>: global name 'cmds' is not defined

我还试过用Script,不加.py后缀,但这样做也没什么意义,问题还是没解决。

有没有人知道怎么为Maya脚本生成文档,因为import maya只有在Maya的解释器里才能正常工作?

1 个回答

1

maya.commands 这个模块在没有运行在一个正常的 Maya 环境下时,其实只是个空壳;如果你在 Maya 外面导入它并查看,你会发现它基本上只是个占位符。

如果你想查看里面的内容,可以导入 maya.standalone 模块,并在运行其他命令之前先初始化它(这意味着你不能单独运行 pydoc)。

你可以使用 write 命令来获取文档:

 import maya.standalone
 maya.standalone.initialize()
 import pydoc
 import mymodule
 pydoc.write(mymodule) # writes the mymodule.html to current directory

不过要注意,所有 Maya 内置函数的文档可能都不太有用:

 'built-in function ls'

不过至少你可以记录你自己写的东西,而不会因为 Maya 的部分而崩溃。

有趣的是,pydoc 的外部文档并不多。不过你可以在这里查看代码:http://hg.python.org/cpython/file/2.7/Lib/pydoc.py (我不确定这个和 2014 年之前 Maya 的 2.6 版本之间的差别,但在 Maya 2011 中是可以正常工作的)

撰写回答