使用pydoc和未知模块创建文档
我觉得这个问题可能比较特殊。在大学里,我们被教导要用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 中是可以正常工作的)